Suggest Edits

GraphQL API Reference


We provide all services that Talk can provide via the GraphQL API documented below. For a primer about GraphQL, visit http://graphql.org/.

If you’re already familiar with GraphQL, visit GraphQL API Overview to see how to interact with Talk’s GraphQL endpoint.

GraphQL Schema


Schema

Mutations

Fields
createComment(input: CreateCommentInput!): CreateCommentPayload!

createComment will create a Comment as the current logged in User.

createCommentReply will create a Comment as the current logged in User that is in reply to another Comment.

editComment(input: EditCommentInput!): EditCommentPayload!

editComment will allow the author of a comment to change the body within the time allotment.

updateSettings(input: UpdateSettingsInput!): UpdateSettingsPayload!

updateSettings will update the Settings for the given Tenant.

rotateSSOSigningSecret can be used to rotate a given active SigningSecret.

deactivateSSOSigningSecret will deactivate a given deactivated SigningSecret.

deleteSSOSigningSecret will delete a given inactive SigningSecret.

createCommentReaction will create a Reaction authored by the current logged in User on a Comment.

removeCommentReaction will remove a Reaction authored by the current logged in User on a Comment if it exists.

createCommentDontAgree will create a DontAgree authored by the current logged in User on a Comment.

removeCommentDontAgree will remove a DontAgree authored by the current logged in User on a Comment if it exists.

createCommentFlag will create a Flag authored by the current logged in User on a given Comment.

featureComment(input: FeatureCommentInput!): FeatureCommentPayload!

featureComment will mark a given Comment as featured.

unfeatureComment will remove the featured tag from a Comment that is featured.

createStory(input: CreateStoryInput!): CreateStoryPayload!

createStory will create the provided Story.

updateStory(input: UpdateStoryInput!): UpdateStoryPayload!

updateStory will update the given Story.

updateStory will update the given Story's settings.

closeStory(input: CloseStoryInput!): CloseStoryPayload!

closeStory will close the given story for commenting.

openStory(input: OpenStoryInput!): OpenStoryPayload!

openStory will open the given story for commenting.

mergeStories(input: MergeStoriesInput!): MergeStoriesPayload!

mergeStories will merge two stories together, merging their comment streams. This operation is irreversible.

removeStory(input: RemoveStoryInput!): RemoveStoryPayload!

removeStory will remove the given Story.

scrapeStory(input: ScrapeStoryInput!): ScrapeStoryPayload!

scrapeStory will scrape the given Story and update the scraped metadata.

approveComment(input: ApproveCommentInput!): ApproveCommentPayload!

approveComment will mark the Comment as APPROVED.

rejectComment(input: RejectCommentInput!): RejectCommentPayload!

rejectComment will mark the Comment as REJECTED.

inviteUsers(input: InviteUsersInput!): InviteUsersPayload!

inviteUsers will send emails to the users with a new account at the designated role.

setUsername(input: SetUsernameInput!): SetUsernamePayload!

setUsername will set the username on the current User if they have not set one before. This mutation will fail if the username is already set.

updateBio(input: UpdateBioInput!): UpdateBioPayload!

updateBio will update the users bio.

updateUsername(input: UpdateUsernameInput!): UpdateUsernamePayload!

updateUsername will update the users username.

setEmail(input: SetEmailInput!): SetEmailPayload!

setEmail will set the email address on the current User if they have not set one already. This mutation will fail if the email address is already set.

setPassword(input: SetPasswordInput!): SetPasswordPayload!

setPassword will set the password on the current User if they have not set one already. This mutation will fail if the password is already set.

updatePassword(input: UpdatePasswordInput!): UpdatePasswordPayload!

updatePassword allows the current logged in User to change their password if they already have one associated with them.

requestAccountDeletion allows the current logged in User to request to delete their account.

deleteUserAccount will delete the target user now.

cancelAccountDeletion allows the current logged in User to cancel the request to delete their account

createToken(input: CreateTokenInput!): CreateTokenPayload!

createToken allows an administrator to create a Token based on the current logged in User.

deactivateToken(input: DeactivateTokenInput!): DeactivateTokenPayload!

deactivateToken will deactivate the current logged in User's Token based on the input.

updateUserUsername allows administrators to update a given User's username to the one provided.

updateEmail(input: UpdateEmailInput!): UpdateEmailPayload!

updateEmail will update the current users email address.

updateNotificationSettings can be used to update the notification settings for the current logged in user.

updateUserMediaSettings can be used to update the media preferences for the current logged in user.

updateUserEmail(input: UpdateUserEmailInput!): UpdateUserEmailPayload!

updateUserEmail allows administrators to update a given User's email address to the one provided.

updateUserAvatar allows administrators to update a given User's avatar to the one provided.

updateUserRole(input: UpdateUserRoleInput!): UpdateUserRolePayload!

updateUserRole will update a given User's role.

promoteUser(input: PromoteUserInput!): PromoteUserPayload!

promoteUser will allow the viewer to add one or many scopes that applies to the viewer. If the target user was not already a site moderator, their role is set to site moderator.

demoteUser(input: DemoteUserInput!): DemoteUserPayload!

demoteUser will allow the viewer to remove one or many scopes that applies to the viewer and the target user. If the target user does not have any remaining scopes, they are set to commenter.

updateUserModerationScopes will update the moderation scopes for a given user. This is used to limit the scopes for which a given moderator can moderate if they also have the moderator role.

banUser(input: BanUserInput!): BanUserPayload!

banUser will ban a specific User from interacting with Comments.

removeUserBan(input: RemoveUserBanInput!): RemoveUserBanPayload!

removeUserBan will remove an active ban from a User if they have one.

suspendUser(input: SuspendUserInput!): SuspendUserPayload!

suspendUser will suspend a specific User from interacting with Comments.

warnUser(input: WarnUserInput!): WarnUserPayload!

warnUser will warn a user and prevent them from commenting until they acknowledge

removeUserWarning will remove a user warning

acknowledgWarning will remove a warning

removeUserSuspension will remove an active suspension from a User if they have one.

ignoreUser(input: IgnoreUserInput!): IgnoreUserPayload!

ignoreUser will mark the given User as ignored by the current logged in User.

removeUserIgnore will remove the given User from the ignored user list from the current logged in User.

requestCommentsDownload allows a user to request to download their comments.

requestUserCommentsDownload allows a user to request to download their comments.

premodUser(input: PremodUserInput!): PremodUserPayload!

premodUser sets a user to mandatory premod

removeUserPremod removes a user from mandatory premod

createModeratorNote creates a note on a user account.

deleteModeratorNote deletes a note on a user account.

enableFeatureFlag will enable a given FEATURE_FLAG.

disableFeatureFlag will disable a given FEATURE_FLAG

createAnnouncement creates a global announcement.

deleteAnnouncement removes a global announcement.

createSite(input: CreateSiteInput!): CreateSitePayload!
updateSite(input: UpdateSiteInput!): UpdateSitePayload!

createWebhookEndpoint will create a new WebhookEndpoint.

updateWebhookEndpoint will update a WebhookEndpoint.

enableWebhookEndpoint will enable a WebhookEndpoint to recieve new events.

disableWebhookEndpoint will disable a WebhookEndpoint from recieving new events.

deleteWebhookEndpoint will delete a WebhookEndpoint.

rotateWebhookEndpointSigningSecret will roll the current active secret to a new key.

createExternalModerationPhase will create a new ExternalModerationPhase.

updateExternalModerationPhase will update a ExternalModerationPhase.

enableExternalModerationPhase will enable a ExternalModerationPhase to recieve new comments.

disableExternalModerationPhase will disable a ExternalModerationPhase from recieving new comments.

deleteExternalModerationPhase will delete a ExternalModerationPhase.

rotateExternalModerationPhaseSigningSecret will roll the current active secret to a new key.

updateStoryMode(input: UpdateStoryModeInput!): UpdateStoryModePayload!

updateStoryMode will set the story mode.

addStoryExpert(input: AddStoryExpertInput!): AddStoryExpertPayload!

addStoryExpert adds an expert to a story.

removeStoryExpert removes an expert from a story.

testSMTP(input: TestSMTPInput!): TestSMTPPayload!

testSMTP sends a test email.

Query

Fields
comment(id: ID!): Comment

comment returns a specific comment.

comments(first: Int = 10, after: Cursor, storyID: ID, siteID: ID, status: COMMENT_STATUS, section: SectionFilter, tag: TAG, query: String, orderBy: COMMENT_SORT = CREATED_AT_DESC): CommentsConnection!

comments returns a filtered comments connection that can be paginated. This is a fairly expensive edge to filter against, moderation queues should utlilize the dedicated edges for more optimized responses.

story(id: ID, url: String): Story

story is a specific article that can be identified by either an ID or a URL.

stream(id: ID, url: String, mode: STORY_MODE): Story

stream will load a specific story that can be identified by either an ID or a URL and will create the story if that feature is enabled.

stories(first: Int = 10, after: Cursor, status: STORY_STATUS, query: String, siteID: ID): StoriesConnection!

stories returns filtered stories that can be paginated.

user(id: ID!): User

user will return the user referenced by their ID.

TODO: evaluate adding a profile based lookup.

users(first: Int = 10, after: Cursor, role: USER_ROLE, query: String, status: USER_STATUS_FILTER): UsersConnection!

users returns filtered users that can be paginated.

TODO: evaluate adding status based filtering.

site(id: ID!): Site
sites(first: Int = 10, after: Cursor): SitesConnection!
viewer: User

viewer is the current logged in User. If no user is currently logged in, it will return null. This is the only nullable field that can be returned that depends on the authentication state that will not throw an error.

settings: Settings!

settings is the Settings for a given Tenant.

discoverOIDCConfiguration(issuer: String!): DiscoveredOIDCConfiguration

discoverOIDCConfiguration will discover the OpenID Connect configuration based on the provided issuer. Discovery is not supported on all providers, and is described in the OpenID Connect Discovery 1.0 incorporating errata set 1:

https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig

If the provider does not support discovery, the response will be null.

debugScrapeStoryMetadata(url: String!): StoryMetadata

debugScrapeStoryMetadata will return the information that Coral was able to scrape from the given URL. No data will be saved related to the Story based on this scrape.

moderationQueues(storyID: ID, siteID: ID, section: SectionFilter): ModerationQueues!

moderationQueues returns the set of ModerationQueues that are available for all stories or if given the story identified by the storyID.

sections: [String!]

sections will return the unique sections used by this Tenant.

activeStories(limit: Int = 10): [Story!]!

activeStories is the list of most recently commented on stories identified by their lastCommentedAt field

webhookEndpoint(id: ID!): WebhookEndpoint

webhookEndpint will return a specific WebhookEndpoint if it exists.

queues: Queues!

queues returns information on queues used in Coral to manage

externalModerationPhase(id: ID!): ExternalModerationPhase

externalModerationPhase will return a specific ExternalModerationPhase if it exists.

Object Types

AcknowledgeWarningPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

user: User!

user is the possibly modified User.

ActionCounts

ActionCounts returns the counts of each action for an item.

Fields

reaction returns the counts for the reaction action on an item.

dontAgree returns the counts for the dontAgree action on an item. This edge is restricted to administrators and moderators.

flag returns the counts for the flag action on an item. This edge is restricted to administrators and moderators.

ActionPresence

ActionPresence returns whether or not a given item has one of the following actions on it. This is typically used to determine if a given user has left one of the following actions.

Fields
reaction: Boolean!

reaction is true when a reaction action was left on an item.

dontAgree: Boolean!

dontAgree is true when a dontAgree action was left on an item.

flag: Boolean!

flag is true when a flag action was left on an item.

AddStoryExpertPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

story: Story!

story is the resultant story the expert was added to.

AkismetExternalIntegration

Fields
enabled: Boolean!

enabled when True will enable the integration.

ipBased: Boolean!

ipBased when True will enable IP-based spam detection.

key: String

The key for the Akismet integration.

site: String

The site (blog) for the Akismet integration.

Announcement

Announcement is an organization-wide announcement displayed above the stream for a set duration

Fields
id: ID!

id is a canonical identifier for this Annoucnement, used to dismiss on front-end.

content: String!

content is the content displayed for the announcement.

createdAt: Time!

createdAt is the creation date.

disableAt: Time!

disableAt is the computed date at which announcement will be invalid.

duration: Int!

duration determines how long the announcement will be valid for.

ApproveCommentPayload

Fields
comment: Comment

comment is the Comment that was approved.

moderationQueues(storyID: ID, siteID: ID, section: SectionFilter): ModerationQueues

moderationQueues will return the selected moderation queues. If the storyID is provided, it will filter the moderation queues for only comments in that Story.

clientMutationId: String!

clientMutationId is required for Relay support.

Auth

Auth contains all the settings related to authentication and authorization.

Fields
integrations: AuthIntegrations!

integrations are the set of configurations for the variations of authentication solutions.

sessionDuration: Int!

sessionDuration determines the duration in seconds for which an access token is valid

AuthenticationTargetFilter

AuthenticationTargetFilter when non-null, will specify the targets that a specific authentication integration will be enabled on.

Fields
admin: Boolean!
stream: Boolean!

AuthIntegrations

Fields

local stores configuration related to email/password based logins.

sso stores configuration related to Single Sign On based logins.

oidc stores configuration related to OpenID Connect based logins.

google stores configuration related to Google based logins.

facebook stores configuration related to Facebook based logins.

BanStatus

BanStatus contains information about a ban for a given User.

Fields
active: Boolean!

active when true, indicates that the given user is banned.

sites: [Site!]

sites is a list of sites that the user has been site banned on.

history: [BanStatusHistory!]!

history is the list of all ban events against a specific User.

BanStatusHistory

BanStatusHistory is the list of all ban events against a specific User.

Fields
active: Boolean!

active when true, indicates that the given user is banned.

createdBy: User

createdBy is the User that suspended the User. If null, the then the given User was banned by the system.

createdAt: Time!

createdAt is the time that the given User was banned.

message: String!

message is sent to banned user via email.

sites: [Site!]

sites are set when the ban was created to perform a site specific ban.

BanUserPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

CancelAccountDeletionPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

CharCount

Fields
enabled: Boolean!

enabled when true, enables the character count moderation phase.

min: Int

min is the smallest length of a Comment that may be posted.

max: Int

max is the largest length of a Comment that may be posted.

CloseCommenting

CloseCommenting contains settings related to the automatic closing of commenting on Stories.

Fields
auto: Boolean!

auto when true will configure the automatic close on each story as they are created based on the current configured timeout option.

timeout: Int!

timeout is the amount of seconds from the createdAt timestamp that a given story will be considered closed.

message: String!

message when provided will be the message that shows when the comment stream is closed for commenting.

CloseStoryPayload

Fields
story: Story

story is the Story that was possibly updated.

clientMutationId: String!

clientMutationId is required for Relay support.

Comment

Comment is a comment left by a User on an Story or another Comment as a reply.

Fields
id: ID!

id is the identifier of the Comment.

body: String

body is the content of the Comment, and is an alias to the body of the currentRevision.body.

revision: CommentRevision

revision is the current revision of the Comment's body.

revisionHistory: [CommentRevision!]!

revisionHistory stores the previous CommentRevision's, with the most recent edit last.

createdAt: Time!

createdAt is the date in which the Comment was created.

author: User

author is the User that authored the Comment.

status represents the Comment's current status.

statusHistory(first: Int = 10, after: Cursor): CommentModerationActionConnection!

statusHistory returns a CommentModerationActionConnection that will list the history of moderator actions performed on the Comment, with the most recent last.

parentCount: Int!

parentCount is the number of direct parents for this Comment. Currently this value is the same as depth.

depth: Int!

depth is the number of levels that a given comment is deep.

replyCount: Int!

replyCount is the number of replies. Only direct replies to this Comment are counted. Removed comments are included in this count.

replies(first: Int = 10, orderBy: COMMENT_SORT = CREATED_AT_DESC, after: Cursor, flatten: Boolean): CommentsConnection!

replies will return the replies to this Comment.

parent: Comment

parent is the immediate parent of a given comment.

rootParent: Comment

rootParent is the highest level parent Comment. This Comment would have been left on the Story itself.

parents(last: Int = 1, before: Cursor): CommentsConnection!

parents returns a CommentsConnection that allows accessing direct parents of the given Comment.

editing: EditInfo!

editing returns details about the edit status of a Comment.

actionCounts: ActionCounts!

actionCounts stores the counts of all the actions for the Comment.

reactions(first: Int = 10, after: Cursor): ReactionsConnection!

reactions is the actual Flags that were left by the Users or the system.

flags(first: Int = 10, after: Cursor): FlagsConnection!

flags is the actual Flags that were left by the Users or the system.

viewerActionPresence: ActionPresence

viewerActionPresence stores the presence information for all the actions left by the current User on this Comment.

story: Story!

story is the Story that the Comment was written on.

permalink: String!

The permalink for this comment.

tags: [Tag!]!

tags are the list of tags assigned to the Comment.

deleted: Boolean

deleted is whether the comment has been deleted.

canModerate: Boolean!

canModerate returns true if the current user can moderate this Comment.

site: Site!

site is the Site referenced by the Story for this Comment.

rating: Int

rating is the optional rating that is attached to the Comment.

CommentCounts

Fields
totalPublished: Int!

totalPublished will return the count of all published Comments.

tags stores the counts of all the Tags against Comment's on this Story.

statuses stores the counts of all the statuses against Comments on this Story.

CommentEdge

CommentEdge represents a unique Comment in a CommentsConnection.

Fields
node: Comment!

node is the Comment for this edge.

cursor: Cursor!

cursor is used in pagination.

CommenterAccountFeatures

CommenterAccountFeatures stores the configuration for commenter account features.

Fields
changeUsername: Boolean!

changeUsername when true, non-sso user may change username every 14 days

downloadComments: Boolean!

downloadComments when true, user may download their comment history

deleteAccount: Boolean!

deleteAccount when true, non-sso user may permanently delete their account

CommentModerationAction

Fields
id: ID!
revision: CommentRevision!

revision is the moderated CommentRevision.

status represents the status that was assigned by the moderator.

moderator: User

moderator is the User that performed the Moderator action. If null, this means that the system has assigned the moderation status.

createdAt: Time!

createdAt is the time that the CommentModerationAction was created.

CommentModerationActionConnection

Fields

edges are a subset of CommentModerationActionEdge's.

nodes is a list of CommentModerationAction's.

pageInfo: PageInfo!

pageInfo is information to aid in pagination.

CommentModerationActionEdge

Fields

node is the CommentModerationAction for this edge.

cursor: Cursor!

cursor is used in pagination.

CommentRevision

Fields
id: ID!

id is the identifier of the CommentRevision.

comment: Comment!

comment is the reference to the original Comment associated with the current Comment.

actionCounts: ActionCounts!

actionCounts stores the counts of all the actions for the CommentRevision specifically.

body: String

body is the content of the CommentRevision. If null, it indicates that the body text was deleted.

media is the optional media object attached to this revision.

metadata stores details on a CommentRevision.

createdAt: Time!

createdAt is the time that the CommentRevision was created.

CommentRevisionMetadata

Fields

perspective stores metadata associated with the pipeline analysis of this revision's body.

wordList metadata stores extra status details about what occurred during word list analysis of this comment revision.

CommentRevisionPerspectiveMetadata

Fields
score: Float!

score is the value detected from the perspective API. This is returned as the percentage chance it would be considered toxic and can be compared to the defined threshold value.

CommentRevisionWordListMetadata

Fields
timedOut: Boolean

timedOut is whether the wordlist analysis timed out when this revision of the comment was sent through the moderation phases.

CommentsConnection

CommentsConnection represents a subset of a comment list.

Fields
edges: [CommentEdge!]!

edges are a subset of CommentEdge's.

nodes: [Comment!]!

nodes is a list of Comment's.

pageInfo: PageInfo!

pageInfo is information to aid in pagination.

CommentStatusCounts

Fields
NONE: Int!

The comment is not PREMOD, but was not applied a moderation status by a moderator.

APPROVED: Int!

The comment has been approved by a moderator.

REJECTED: Int!

The comment has been rejected by a moderator.

PREMOD: Int!

The comment was created while the stories premoderation option was on, and new comments that haven't been moderated yet are referred to as "premoderated" or "premod" comments.

SYSTEM_WITHHELD: Int!

SYSTEM_WITHHELD represents a comment that was withheld by the system because it was flagged by an internal process for further review.

CommentTagCounts

CommentTagCounts provides count data for Tags made against Comment's.

Fields
FEATURED: Int!

FEATURED is the count of Comment's with the FEATURED tag.

UNANSWERED: Int!

UNANSWERED is the count of Comment's with the UNANSWERED tag.

REVIEW: Int!

REVIEW is the count of Comment's with the REVIEW tag.

QUESTION: Int!

QUESTION is the count of Comment's with the QUESTION tag.

CommunityGuidelines

Fields
enabled: Boolean!

enable set to true will show the guidelines above the message box.

content: String

content of the guidelines.

CreateAnnouncementPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

settings: Settings!

CreateCommentDontAgreePayload

Fields
comment: Comment

comment is the Comment that the DontAgree was created on.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateCommentFlagPayload

Fields
comment: Comment

comment is the Comment that the Flag was created on.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateCommentPayload

CreateCommentPayload contains the created Comment after the createComment mutation.

Fields

edge is the possibly created comment edge.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateCommentReactionPayload

Fields
comment: Comment

comment is the Comment that the Reaction was created on.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateCommentReplyPayload

CreateCommentReplyPayload contains the created Comment after the createCommentReply mutation.

Fields

edge is the possibly created comment edge.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateExternalModerationPhasePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

phase is the ExternalModerationPhase that we just created.

settings: Settings!

settings is the updated settings also containing the new phase.

CreateModeratorNotePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

user: User!

createdBy is the moderator who created the note user is the updated user.

CreateSitePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

site: Site!

site is the Site that was newly created.

CreateStoryPayload

Fields
story: Story

story is the Story that was possibly created.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateTokenPayload

Fields
user: User!

user is the possibly modified User.

token: Token!

token is the Token that was created.

signedToken: String!

signedToken is the signed Token associated with the account.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateWebhookEndpointPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

endpoint: WebhookEndpoint!

endpoint is the endpoint that we just created.

settings: Settings!

settings is the updated settings also containing the new endpoint.

CustomExternalIntegration

Fields

phases is all the external moderation phases for this Tenant.

DeactivateSSOSigningSecretPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

settings: Settings

settings is the Settings that the SSO secret was regenerated on.

DeactivateTokenPayload

Fields
user: User!

user is the possibly modified User.

token: Token

token is the Token that was deleted.

clientMutationId: String!

clientMutationId is required for Relay support.

DeleteAnnouncementPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

settings: Settings!

DeleteExternalModerationPhasePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

phase is the ExternalModerationPhase that we just deleted.

DeleteModeratorNotePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

user: User!

user is the updated user.

DeleteSSOSigningSecretPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

settings: Settings

settings is the Settings that the SSO secret was regenerated on.

DeleteUserAccountPayload

Fields
user: User

user is the User that was deleted.

clientMutationId: String!

clientMutationId is required for Relay support.

DeleteWebhookEndpointPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

endpoint: WebhookEndpoint!

endpoint is the endpoint that we just deleted.

DemoteUserPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

user: User!

user is the possibly modified User.

DisableCommenting

Fields
enabled: Boolean!

enabled when true will disable commenting site-wide.

message: String!

message will be shown above the comment stream while commenting is disabled site-wide.

DisableExternalModerationPhasePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

phase is the ExternalModerationPhase that we just disabled.

DisableFeatureFlagPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

flags: [FEATURE_FLAG!]!

flags is the current set of flags enabled.

DisableWebhookEndpointPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

endpoint: WebhookEndpoint!

endpoint is the endpoint that we just disabled.

DiscoveredOIDCConfiguration

DiscoveredOIDCConfiguration contains the discovered Provider Metadata as defined in:

https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata

Discovery is not supported on all providers, and is described in the OpenID Connect Discovery 1.0 incorporating errata set 1:

https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig

Fields
authorizationURL: String!

authorizationURL is defined as the authorization_endpoint in:

https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata

tokenURL: String

DontAgreeActionCounts

DontAgreeActionCounts stores all the counts for the counts for the dontAgree action on a given item.

Fields
total: Int!

total is the total number of dontAgree actions against a given item.

EditCommentPayload

EditCommentPayload contains the edited Comment after the editComment mutation.

Fields
comment: Comment!

comment is the possibly edited comment.

clientMutationId: String!

clientMutationId is required for Relay support.

EditInfo

Fields
edited: Boolean!

edited will be True when the Comment has been edited in the past.

editableUntil: Time

editableUntil is the time that the comment is editable until. This will return null if the current viewer is not the author of the Comment.

EmailConfiguration

Fields
enabled: Boolean!

enabled when true, will enable the emailing functionality in Coral.

fromName: String
fromEmail: String
smtp: SMTP!

EnableExternalModerationPhasePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

phase is the ExternalModerationPhase that we just enabled.

EnableFeatureFlagPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

flags: [FEATURE_FLAG!]!

flags is the current set of flags enabled.

EnableWebhookEndpointPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

endpoint: WebhookEndpoint!

endpoint is the endpoint that we just enabled.

ExternalIntegrations

Fields

akismet provides integration with the Akismet Spam detection service.

perspective provides integration with the Perspective API comment analysis platform.

external provides integration details for external moderation phases that can be used in the moderation pipeline.

ExternalMedia

Fields
url: String!

url is the URL of a YouTube video.

extension: String!

extension is the file extension

width: Int

width is the width of the YouTube video in pixels.

height: Int

height is the height of the YouTube video in pixels.

ExternalMediaConfiguration

Fields
enabled: Boolean!

enabled is true when external media objects are enabled.

ExternalModerationPhase

ExternalModerationPhase describes a phase use in the moderation pipeline that calls out to an external resource as defined by the provided URL.

Fields
id: ID!

id identifies this particular External Moderation Phase.

name: String!

name is the name assigned to this ExternalModerationPhase for identification purposes.

enabled: Boolean!

enabled when true, will use this phase in the moderation pipeline.

url: String!

url is the actual URL that should be called.

format is the format of the comment body sent.

timeout: Int!

timeout is the number of milliseconds that this moderation is maximum expected to take before it is skipped.

signingSecret: SigningSecret!

signingSecret is the secret used to sign outgoing requests to the url during the moderation pipeline.

FacebookAuthIntegration

Fields
enabled: Boolean!

enabled, when true, will enable Facebook as an authentication integration.

allowRegistration: Boolean!

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

clientID: String

clientID is the Client Identifier as provided by the Facebook Developer Console.

clientSecret: String

clientSecret is the Client Secret as provided by the Facebook Developer Console.

callbackURL: String!

callbackURL is the URL that the user should be redirected to in order to continue the authentication flow. This field is not stored, and is instead computed from the Tenant.

redirectURL: String!

redirectURL is the URL that the user should be redirected to in order to start an authentication flow with the given integration. This field is not stored, and is instead computed from the Tenant.

FacebookProfile

Fields
id: String!

FeatureCommentPayload

Fields
comment: Comment

comment is the Comment that was featured.

clientMutationId: String!

clientMutationId is required for Relay support.

moderationQueues(storyID: ID): ModerationQueues

moderationQueues will return the selected moderation queues. If the storyID is provided, it will filter the moderation queues for only comments in that Story.

Flag

Fields
flagger: User

flagger is the User that created the Flag. If this is null, then the system created the Flag.

reason is the selected reason why the Flag is being created. If the reason is not defined, or existed from a previous version of Coral, it will return null to avoid errors.

additionalDetails: String

additionalDetails stores information from the User as to why the Flag was created or is relevant.

FlagActionCounts

FlagActionCounts stores all the counts for the counts for the flag action on a given item and the reason counts.

Fields
total: Int!

total is the total number of flags against a given item.

reasons stores the counts for the various reasons that an item could be flagged for.

FlagEdge

Fields
node: Flag!

node is the Flag for this edge.

cursor: Cursor!

cursor is used in pagination.

FlagReasonActionCounts

Fields
COMMENT_REPORTED_OFFENSIVE: Int!
COMMENT_REPORTED_ABUSIVE: Int!
COMMENT_REPORTED_SPAM: Int!
COMMENT_REPORTED_OTHER: Int!
COMMENT_REPORTED_BIO: Int!
COMMENT_DETECTED_TOXIC: Int!
COMMENT_DETECTED_SPAM: Int!
COMMENT_DETECTED_LINKS: Int!
COMMENT_DETECTED_BANNED_WORD: Int!
COMMENT_DETECTED_SUSPECT_WORD: Int!
COMMENT_DETECTED_RECENT_HISTORY: Int!
COMMENT_DETECTED_PREMOD_USER: Int!
COMMENT_DETECTED_NEW_COMMENTER: Int!
COMMENT_DETECTED_REPEAT_POST: Int!

FlagsConnection

Fields
edges: [FlagEdge!]!

edges are a subset of FlagEdge's.

nodes: [Flag!]!

nodes is a list of Flags.

pageInfo: PageInfo!

pageInfo is information to aid in pagination.

GiphyMedia

GiphyMedia is a particular GIF that is provided by the Giphy platform.

Fields
url: String!

url is the URL to a image of the GIF.

original: String!

original is the URL to a image of the GIF.

still: String!

still is a thumbnail preview of the GIF.

video: String!

video is a URL to the mp4 video of the GIF.

width: Int

width is the width of the GIF in pixels.

height: Int

height is the height of the GIF in pixels.

title: String

title is the title of the GIF.

GiphyMediaConfiguration

Fields
enabled: Boolean!

enabled is true when gif search via giphy and giphy media objects are enabled.

maxRating: String

maximum allowed rating for gifs, g, pg, pg-13, r.

key: String

key is the API key for Giphy.

GoogleAuthIntegration

Fields
enabled: Boolean!

enabled, when true, will enable Google as an authentication integration.

allowRegistration: Boolean!

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

clientID: String

clientID is the Client Identifier as provided by the Google API Console.

clientSecret: String

clientSecret is the Client Secret as provided by the Google API Console.

callbackURL: String!

callbackURL is the URL that the user should be redirected to in order to continue the authentication flow. This field is not stored, and is instead computed from the Tenant.

redirectURL: String!

redirectURL is the URL that the user should be redirected to in order to start an authentication flow with the given integration. This field is not stored, and is instead computed from the Tenant.

GoogleProfile

Fields
id: String!

IgnoreUserPayload

Fields
user: User!

user is the User that we just ignored.

clientMutationId: String!

clientMutationId is required for Relay support.

Invite

Invite represents a given User that is pending registration that has been invited by an Administrator.

Fields
id: ID!

id is the identifier for the Invite.

email: String!

email is the email address that will be assigned and used for the invited User.

role: USER_ROLE!

role is the USER_ROLE that the User will be assigned upon account creation.

createdBy: User!

createdBy is the User that created the Invite.

createdAt: Time!

createdAt is the time that the Invite was created on.

InviteUsersPayload

Fields
invites: [Invite]!

invites is the references to the invited Users.

clientMutationId: String!

clientMutationId is required for Relay support.

LiveConfiguration

LiveConfiguration provides configuration options related to live updates.

Fields
configurable: Boolean!

configurable when false indicates that live updates cannot be modified.

enabled: Boolean!

enabled when true will allow live updates.

LocalAuthIntegration

Fields
enabled: Boolean!
allowRegistration: Boolean!

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

LocalProfile

Fields
id: String!

MediaConfiguration

Fields

twitter is the configuration for Twitter support.

youtube is the configuration for YouTube support.

giphy is the configuration for Giphy support.

external is the configuration for external images.

MergeStoriesPayload

Fields
story: Story

story is the Story that all the source stories were merged into.

clientMutationId: String!

clientMutationId is required for Relay support.

ModerationQueue

ModerationQueue returns the Comments associated with a Moderation Queue.

Fields
id: ID!

id is a canonical identifier for this specific moderation queue.

count: Int

count will return the number of Comments that are in this queue.

comments(first: Int = 10, after: Cursor, orderBy: COMMENT_SORT = CREATED_AT_DESC): CommentsConnection!

comments are the comments on the ModerationQueue.

ModerationQueues

ModerationQueues are the list of ModerationQueue's that are supported inside Coral that can be used to moderate Comments.

Fields
unmoderated: ModerationQueue!

unmoderated will return a ModerationQueue for all Comments that have not been moderated yet.

reported: ModerationQueue!

reported will return a ModerationQueue for all Comments that have been published, have not been moderated by a human yet, and have been reported by a User via a flag.

pending: ModerationQueue!

pending will return a ModerationQueue for all Comments that were held back by the system and require moderation in order to be published.

ModeratorNote

Fields
id: ID!

id is the identifier of the Note.

body: String!

body is the content of the Note

createdAt: Time!

createdAt is the date in which the Note was created.

createdBy: User!

createdBy is the Moderator that authored the Note.

NewCommentersConfiguration

NewCommenterConfiguration specifies the features that apply to new commenters

Fields
premodEnabled: Boolean!

premodEnabled ensures that new commenters' comments are pre-moderated until they have enough approved comments

approvedCommentsThreshold: Int!

approvedCommentsThreshold is the number of comments a user must have approved before their comments do not require premoderation

OIDCAuthIntegration

OIDCAuthIntegration provides a way to store Open ID Connect credentials. This will be used in the admin to provide staff logins for users.

Fields
enabled: Boolean!

enabled, when true, allows the integration to be enabled.

allowRegistration: Boolean!

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

name: String

name is the label assigned to reference the provider of the OIDC integration, and will be used in situations where the name of the provider needs to be displayed, like the login button.

callbackURL: String!

callbackURL is the URL that the user should be redirected to in order to continue the authentication flow with the given integration. This field is not stored, and is instead computed from the Tenant.

redirectURL: String

redirectURL is the URL that the user should be redirected to in order to start an authentication flow with the given integration. This field is not stored, and is instead computed from the Tenant.

clientID: String

clientID is the Client Identifier as defined in:

https://tools.ietf.org/html/rfc6749#section-2.2

clientSecret: String

clientSecret is the Client Secret as defined in:

https://tools.ietf.org/html/rfc6749#section-2.3.1

authorizationURL: String

authorizationURL is defined as the authorization_endpoint in:

https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata

tokenURL: String

OIDCProfile

Fields
id: String!
provider: String!

OpenStoryPayload

Fields
story: Story

story is the Story that was possibly updated.

clientMutationId: String!

clientMutationId is required for Relay support.

Organization

Organization stores information about the organization behind this specific instance of Coral.

Fields
name: String!

name is the name of the organization.

contactEmail: String!

contactEmail is the email of the organization.

url: String!

url is the URL to the organizations home page.

PageInfo

Fields
hasNextPage: Boolean!

Indicates that there are more nodes after this subset.

hasPreviousPage: Boolean!

Included for legacy Relay reasons. Always set to false.

startCursor: Cursor

Included for legacy Relay reasons. Always set to null.

endCursor: Cursor

Specifies the last node's cursor for forwards pagination.

PerspectiveExternalIntegration

Fields
enabled: Boolean!

enabled when True will enable the integration.

endpoint: String

The endpoint that Coral should use to communicate with the perspective API.

key: String

The key for the Perspective API integration.

threshold: Float

The threshold that given a specific toxic comment score, the comment will be marked by Coral as toxic.

model: String

model is the Perspective model to use.

doNotStore: Boolean

When True, comments sent will not be stored by the Google Perspective API.

sendFeedback: Boolean

When True, comment moderation decisions will be sent to the Google Perspective API to help improve the comment analysis algorithms.

PremodStatus

Fields
active: Boolean!

active when true, indicates that the given user is set to pre-mod.

history: [PremodStatusHistory!]!

history is the list of all suspension events against a specific User.

PremodStatusHistory

Fields
active: Boolean!

active when true, indicates that the given user is premodded.

createdBy: User!

createdBy is the user that flagged the commenter as pre-mod

createdAt: Time!

createdAt is the time the user was set to pre-mod

PremodUserPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

PromoteUserPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

user: User!

user is the possibly modified User.

Queue

Fields
counts: QueueCounts!

counts is the current counts associated with the Queue.

QueueCounts

Fields
waiting: Int!

waiting is the number of jobs that are in line to be processed.

active: Int!

active is the number of jobs that are being activly processed.

delayed: Int!

delayed is the number of jobs that have been delayed due to a failure and are waiting for a backoff.

Queues

Fields
mailer: Queue!

mailer is the Queue associated with the Mailer queue.

scraper: Queue!

scraper is the Queue associated with the Scraper queue.

notifier: Queue!

notifier is the Queue associated with the Notifier queue.

webhook: Queue!

webhook is the Queue associated with the Webhook queue.

rejector: Queue!

rejector is the Queue associated with the Rejector queue.

Reacter

Fields
username: String
userID: String

Reaction

Fields
id: String
reacter: Reacter

ReactionActionCounts

ReactionActionCounts stores all the counts for the counts for the reaction action on a given item.

Fields
total: Int!

total is the total number of reactions against a given item.

ReactionConfiguration

ReactionConfiguration stores the configuration for reactions used across this Tenant.

Fields
icon: String!

icon is the string representing the icon to be used for the reactions.

iconActive: String

iconActive is the string representing the icon that should be used when the icon should be considered active.

label: String!

label is the string placed beside the reaction icon to provide better context.

labelActive: String!

labelActive is the string placed beside the reaction icon to provide better context when it has been selected.

sortLabel: String!

sortLabel is the string placed inside of the sort menu to sort for comment with most reactions.

color: String

color is the hex color code that can be used to change the color of the button.

ReactionEdge

Fields
node: Reaction!

node is the Flag for this edge.

cursor: Cursor!

cursor is used in pagination.

ReactionsConnection

Fields
edges: [ReactionEdge!]!

edges are a subset of FlagEdge's.

nodes: [Reaction!]!

nodes is a list of Flags.

pageInfo: PageInfo!

pageInfo is information to aid in pagination.

RecentCommentHistory

RecentCommentHistory returns data associated with a User's recent commenting history within the specified timeFrame configured.

Fields

statuses stores the counts of all the statuses against Comments by a User within the timeFrame configured.

RecentCommentHistoryConfiguration

RecentCommentHistoryConfiguration controls the beheviour around when comments from Users should be marked for pre-moderation automatically once they have reached the trigger rate for rejected comments.

Fields
enabled: Boolean!

enabled when true will pre-moderate users new comments once they have reached the trigger rejection rate.

timeFrame: Int!

timeFrame specifies the number of seconds that comments from a given User will be taken into account when computing their rejection rate.

triggerRejectionRate: Float!

triggerRejectionRate specifies the percentage of comments that a given User may have before their comments will then be placed into pre-moderation until the rejection rate decreases.

RejectCommentPayload

Fields
comment: Comment

comment is the Comment that was rejected.

moderationQueues(storyID: ID, siteID: ID, section: SectionFilter): ModerationQueues

moderationQueues will return the selected moderation queues. If the storyID is provided, it will filter the moderation queues for only comments in that Story.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveCommentDontAgreePayload

Fields
comment: Comment

comment is the Comment that the DontAgree was removed on.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveCommentReactionPayload

Fields
comment: Comment

comment is the Comment that the Reaction was removed on.

clientMutationId: String!

clientMutationId is required for Relay support.

RemovePremodUserPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveStoryExpertPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

story: Story!

story is the resultant story the expert was removed from.

RemoveStoryPayload

Fields
story: Story

story is the Story that was possibly removed.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveUserBanPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveUserIgnorePayload

Fields
user: User!

user is the User that we removed the ignore from.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveUserSuspensionPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveUserWarningPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

user: User!

user is the possibly modified User.

RequestAccountDeletionPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

RequestCommentsDownloadPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

RequestUserCommentsDownloadPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

archiveURL: String!

archiveURL is the archive url

RotateExternalModerationPhaseSigningSecretPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

phase is the ExternalModerationPhase that we just updated.

RotateSSOSigningSecretPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

settings: Settings

settings is the Settings that the SSO secret was regenerated on.

RotateWebhookEndpointSigningSecretPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

endpoint: WebhookEndpoint!

endpoint is the endpoint that we just updated.

RTEConfiguration

Fields
enabled: Boolean!

enabled when true turns on basic RTE features including bold, italic, quote, and bullet list.

strikethrough: Boolean!

strikethrough when true turns on the strikethrough feature.

spoiler: Boolean!

spoiler when true turns on the spoiler feature.

sarcasm: Boolean!

sarcasm when true turns on the sarcasm feature.

ScrapeStoryPayload

Fields
story: Story

story is the Story that was possibly scraped.

clientMutationId: String!

clientMutationId is required for Relay support.

SetEmailPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

SetPasswordPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

Settings

Settings stores the global settings for a given Tenant.

Fields
id: ID!

id is a canonical identifier for this Tenant.

domain: String!

domain is the domain that is associated with this Tenant.

webhooks store the webhook configuration.

webhookEvents: [WEBHOOK_EVENT_NAME!]!

webhookEvents returns all the events that can trigger webhooks.

staticURI: String

staticURI if configured, is the static URI used to serve static files from.

locale: Locale!

locale is the specified locale for this Tenant.

live provides configuration options related to live updates for stories on this site.

moderation: MODERATION_MODE

moderation is the moderation mode for all Stories on the site.

communityGuidelines: CommunityGuidelines!

communityGuidelines will be shown in the comments stream.

premodLinksEnable: Boolean

premodLinksEnable will put all comments that contain links into premod.

closeCommenting: CloseCommenting!

closeCommenting contains settings related to the automatic closing of commenting on Stories.

customCSSURL: String

customCSSURL is the URL of the custom CSS used to display on the frontend.

disableCommenting: DisableCommenting!

disableCommenting will disable commenting site-wide.

editCommentWindowLength: Int!

editCommentWindowLength is the length of time (in seconds) after a comment is posted that it can still be edited by the author.

charCount: CharCount!

charCount stores the character count moderation settings.

organization: Organization!

organization stores information about the organization behind this specific instance of Coral.

email is the set of credentials and settings associated with the organization.

slack is the configuration for slack communication

wordList: WordList!

wordList will return a given list of words.

auth: Auth!

auth contains all the settings related to authentication and authorization.

integrations: ExternalIntegrations!

integrations contains all the external integrations that can be enabled.

recentCommentHistory: RecentCommentHistoryConfiguration!

recentCommentHistory is the set of settings related to how automatic pre-moderation is controlled.

reaction specifies the configuration for reactions.

staff specifies the configuration for the staff badges assigned to users with any role above COMMENTER.

accountFeatures: CommenterAccountFeatures!

accountFeatures stores the configuration for commenter account features.

stories stores the configuration around stories.

media is the configuration media content attached to Comment's.

featureFlags: [FEATURE_FLAG!]!

featureFlags provides the enabled feature flags.

createdAt: Time!

createdAt is the time that the Settings was created at.

newCommenters is the configuration for how new commenters comments are treated.

premoderateSuspectWords: Boolean!

premoderateSuspectWords when enabled will cause any comments that contain suspect words to be sent to pre-moderation to be reviewed by a moderator prior to being presented in stream.

announcement: Announcement

announcement is the currently active Announcement.

multisite: Boolean!

multisite is whether multiple sites exist for this tenant.

rte is the configuration of the Rich-Text-Editor.

memberBios: Boolean!

memberBios is whether members can define a bio for their account.

SetUsernamePayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

SigningSecret

Fields
kid: String!

kid is the identifier for the key used when verifying tokens issued by the provider.

secret: String!

secret is the actual underlying secret used to verify the tokens with.

createdAt: Time!

createdAt is the date that the key was created at.

lastUsedAt: Time

lastUsedAt is the time that the

rotatedAt: Time

rotatedAt is the time that the token was rotated out.

inactiveAt: Time

inactiveAt is the date that the token can no longer be used to validate tokens.

Site

Fields
id: ID!

id is the identifier of the Site.

name: String!

name is the name of the Site.

allowedOrigins: [String!]!

allowedOrigins are the allowed origins for embeds.

canModerate: Boolean!

canModerate when true indicates that the current user can moderate comments left on this Site.

topStories(limit: Int = 5): [Story!]!

topStories will return stories that have had the most comments within the last 24 hours on this Site.

createdAt: Time!

createdAt is when the site was created.

SiteEdge

SiteEdge represents a unique Site in a SitesConnection.

Fields
node: Site!

node is the Site for this edge.

cursor: Cursor!

cursor is used in pagination.

SitesConnection

UsersConnection represents a subset of a stories list.

Fields
edges: [SiteEdge!]!

edges are a subset of SiteEdge's.

nodes: [Site!]!

nodes is a list of Site's.

pageInfo: PageInfo!

pageInfo is information to aid in pagination.

SlackChannel

Fields
enabled: Boolean!

enabled is whether this Slack channel is enabled to send comments to its correlated web hook

name: String

name is the name assigned to the Slack channel

hookURL: String

hookURL defines the URL that comments will be sent to

triggers are the filters of types of comments that will be sent to the correlated channel

SlackChannelTriggers

Fields
reportedComments: Boolean

reportedComments is whether this channel will receive reported comments

pendingComments: Boolean

pendingComments is whether this channel will receive pending comments

featuredComments: Boolean

featuredComments is whether this channel will receive featured comments

allComments: Boolean

allComents is whether the channel will receive all comments

staffComments: Boolean

staffComments is whether the channel will receive staff comments

SlackConfiguration

Fields
channels: [SlackChannel!]!

channels is the set of Slack channels configured to receive comments

SMTP

Fields
secure: Boolean
host: String
port: Int
authentication: Boolean
username: String
password: String

SSOAuthIntegration

SSOAuthIntegration is an AuthIntegration that provides a secret to the admins of a tenant, where they can sign a SSO payload with it to provide to the embed to allow single sign on.

Fields
enabled: Boolean!
allowRegistration: Boolean!

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

signingSecrets: [SigningSecret!]!

signingSecrets are the different SigningSecret's used by this Tenant.

key: String

key is the secret that is used to sign tokens.

[DEPRECATED] field is deprecated in favour of signingSecrets

keyGeneratedAt: Time

keyGeneratedAt is the Time that the key was effective from.

[DEPRECATED] field is deprecated in favour of signingSecrets

SSOProfile

Fields
id: String!

StaffConfiguration

StaffConfiguration specifies the configuration for the staff badges assigned to users with any role above COMMENTER.

Fields
label: String!

label is the string used when displaying the STAFF badge to users.

[DEPRECATED] deprecated in favour of staffLabel

staffLabel: String!

staffLabel is the string used when displaying the STAFF badge to users.

moderatorLabel: String!

moderatorLabel is the string used when displaying the MODERATOR badge to users.

adminLabel: String!

adminLabel is the string used when displaying the ADMIN badge to users

StoriesConnection

StoriesConnection represents a subset of a stories list.

Fields
edges: [StoryEdge!]!

edges are a subset of StoryEdge's.

nodes: [Story!]!

nodes is a list of Story's.

pageInfo: PageInfo!

pageInfo is information to aid in pagination.

Story

Story is an Article or Page where Comments are written on by Users.

Fields
id: ID!

id is the identifier of the Story.

status: STORY_STATUS!

status is the status of the Story.

url: String!

url is the url that the Story is located on.

metadata: StoryMetadata

metadata stores the scraped metadata from the Story page.

scrapedAt: Time

scrapedAt is the Time that the Story had it's metadata scraped at. If the time is null, the Story has not been scraped yet.

featuredComments(first: Int = 10, orderBy: COMMENT_SORT = CREATED_AT_DESC, after: Cursor): CommentsConnection!

featuredComments are the Comments with the FEATURED tag on the Story.

comments(first: Int = 20, orderBy: COMMENT_SORT = CREATED_AT_DESC, after: Cursor, rating: Int, tag: TAG): CommentsConnection!

comments are the comments on the Story.

Arguments
rating: Int

rating allows filtering for comments with a specific rating. If this feature has not been enabled on this tenant or story, this option has no effect.

tag: TAG

This is a workaround to allow filtering for current Q&A functionality. This is used to filter on UNANSWERED to populate its corresponding Unanswered questions tab. In the future, we want a dedicated edge for unansweredComments.

commentActionCounts: ActionCounts!

commentActionCounts stores the counts of all the actions against this Story and it's Comments.

moderationQueues: ModerationQueues!

moderationQueues returns the set of ModerationQueues that are available for this Story.

closedAt: Time

closedAt is the Time that the Story is closed for commenting. If null or in the future, the story is not yet closed.

isClosed: Boolean!

isClosed returns true when the Story is currently closed for commenting.

commentCounts: CommentCounts!

commentCounts stores all the counts of Comments that are left on the Comment.

createdAt: Time!

createdAt is the date that the Story was created at.

settings: StorySettings!

settings is the set of Settings on a Story that inherit from the global settings.

lastCommentedAt: Time

lastCommentedAt is the last time someone commented on this story.

canModerate: Boolean!

canModerate returns true if the current user can moderate comments on this Story.

site: Site!

site is the site associated with the story

viewerCount: Int

viewerCount is the number of viewers active on this Story.

ratings: StoryRatings

ratings is information about ratings that is attached to this story by published comments.

viewerRating: Comment

viewerRating is the Comment with a rating that the viewer has already added to this story.

StoryConfiguration

StoryConfiguration stores the configuration for working with stories.

Fields

scraping stores configuration around story scraping.

disableLazy: Boolean!

disableLazy when true, will only allow lookups of stories created via the API.

StoryEdge

StoryEdge represents a unique Story in a StoriesConnection.

Fields
node: Story!

node is the Story for this edge.

cursor: Cursor!

cursor is used in pagination.

StoryMessageBox

StoryMessageBox stores settings related to the Story Message Box.

Fields
enabled: Boolean!

enable when true will enable the Message Box on the comment stream.

icon: String

icon when set will reference the string for the Message box used by the Message Box.

content: String

content when set contains the actual markup for the Message Box.

StoryMetadata

StoryMetadata stores all the metadata that is scraped using the scraping tools inside Coral. Coral utilizes metascraper which uses a variety of filters derived from The Open Graph Protocol to scan for metadata on the page.

Fields
title: String

title stores the scraped title from the Story page.

author: String

author stores the scraped author from the Story page.

description: String

description stores the scraped description from the Story page.

image: String

image stores the scraped image from the Story page.

publishedAt: Time

publishedAt stores the scraped publication date from the Story page.

modifiedAt: Time

modifiedAt stores the scraped modified date from the Story page.

section: String

section stores the scraped section from the Story page.

StoryRatings

Fields
average: Float!

average refers to the average rating across all ratings for the Story from published comments.

count: Int!

count refers to the number of ratings that have been submitted that contributes to the average.

StoryScrapingConfiguration

StoryScrapingConfiguration stores the configuration around story scraping.

Fields
enabled: Boolean!

enabled, when true, enables stories to be scraped. When disabled, stories will only be looked up instead, and must be created via the API directly.

proxyURL: String

proxyURL when specified, allows scraping requests to use the provided proxy. All requests will then be passed through the appropriote proxy as parsed by the proxy-agent package.

customUserAgent: String

customUserAgent when specified will override the user agent used by fetch requests made during the scraping process.

StorySettings

Fields

live provides configuration options related to live updates on this Story.

moderation: MODERATION_MODE!

moderation determines whether or not this is a PRE or POST moderated story.

premodLinksEnable: Boolean!

premodLinksEnable will put all comments that contain links into premod.

messageBox: StoryMessageBox!

messageBox stores settings related to the Story Message Box.

mode: STORY_MODE!

mode is the specified mode that the story should be updated with.

experts: [User!]!

experts are used during Q&A mode to assign users to answer questions on a Q&A stream. It is an optional parameter and is only used when the story stream is in Q&A mode.

SuspendUserPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

SuspensionStatus

SuspensionStatus stores the user suspension status as well as the history of changes.

Fields
active: Boolean!

active when true, indicates that the given user is suspended.

until: Time

until is the time that the current user suspension is over.

history is the list of all suspension events against a specific User.

SuspensionStatusHistory

SuspensionStatusHistory is the list of all suspension events against a specific User.

Fields
active: Boolean!

active is true when the given suspension status time range applies now.

from: TimeRange!

from is the time range that the suspension is active for.

createdBy: User

createdBy is the User that suspended the User. If null, the then the given User was suspended by the system.

createdAt: Time!

createdAt is the time that the suspension was created at.

modifiedBy: User

modifiedBy is the User that cancelled/edited the suspension. If null, then the suspension has not been cancelled/edited, or has been edited by the system.

modifiedAt: Time

modifiedAt is the time that the suspension was cancelled/edited. If null, then the suspension has not been cancelled/edited.

message: String!

message is sent to suspended user via email.

Tag

Tag is a simple text message that can be displayed to segment tagable entities.

Fields
code: TAG!

code is the machine representation of the tag name.

createdBy: User

createdBy is the User that assigned the Tag. This is null when the Tag is assigned by the System.

createdAt: Time!

createdAt is the time that the Tag was assigned on.

TestSMTPPayload

Fields
clientMutationId: String!

TimeRange

TimeRange represents a range of times.

Fields
start: Time!

start is the time that the time range started on.

finish: Time!

finish is the time that the time range finished at.

Token

Token facilitates accessing Coral externally with a token.

Fields
id: ID!
name: String!
createdAt: Time!

TwitterMedia

TwitterMedia is a specific Twitter Tweet.

Fields
url: String!

url is the URL of a Twitter tweet.

width: Int

width is the width of the Twitter tweet in pixels.

TwitterMediaConfiguration

Fields
enabled: Boolean!

enabled is true when twitter media objects are enabled.

UnfeatureCommentPayload

Fields
comment: Comment

comment is the Comment that was unfeatured.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateBioPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateEmailPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateExternalModerationPhasePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

phase is the ExternalModerationPhase that we just updated.

UpdateNotificationSettingsPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdatePasswordPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateSettingsPayload

UpdateSettingsPayload contains the updated Settings after the updateSettings mutation.

Fields
settings: Settings

settings is the updated Settings.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateSitePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

site: Site!

site is the newly updated Site.

UpdateStoryModePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

story: Story!

story is the resultant story that Q&A was enabled on.

UpdateStoryPayload

Fields
story: Story

story is the Story that was possibly updated.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateStorySettingsPayload

Fields
story: Story

story is the Story that was possibly updated.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUserAvatarPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUserEmailPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUserMediaSettingsPayload

Fields
user: User!
clientMutationId: String!

UpdateUserModerationScopesPayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUsernamePayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUserRolePayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

user: User!

user is the possibly modified User.

UpdateUserUsernamePayload

Fields
user: User!

user is the possibly modified User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateWebhookEndpointPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

endpoint: WebhookEndpoint!

endpoint is the endpoint that we just created.

User

User is someone that leaves Comments, and logs in.

Fields
id: ID!

id is the identifier of the User.

username: String

username is the name of the User visible to other Users.

avatar: String

avatar is the url to the avatar for a specific User.

badges: [String!]

badges are user display badges

email: String

email is the current email address for the User.

duplicateEmail: String

duplicateEmail is set on users that have a matching email with another user in the database. Only relevant during the account completion process.

emailVerified: Boolean

emailVerified when true indicates that the given email address has been verified.

profiles: [Profile!]!

profiles is the array of profiles assigned to the user.

role: USER_ROLE!

role is the current role of the User.

moderatorNotes: [ModeratorNote!]!

moderatorNotes are notes left by moderators about the User.

ignoreable: Boolean!

ignoreable is a computed property based on the user's role. Typically, users with elevated privileges aren't allowed to be ignored.

comments(first: Int = 10, orderBy: COMMENT_SORT = CREATED_AT_DESC, after: Cursor): CommentsConnection!

comments are the comments written by the User.

allComments(first: Int = 10, after: Cursor): CommentsConnection!

allComments are comments regardless of visibility status.

rejectedComments(first: Int = 10, after: Cursor): CommentsConnection!

rejectedComments are comments that have been rejected.

ongoingDiscussions(limit: Int = 5): [Story!]!

ongoingDiscussions are stories where the given user has written comments in sorted by their last comment date.

recentCommentHistory: RecentCommentHistory!

recentCommentHistory returns recent commenting history by the User.

commentModerationActionHistory(first: Int = 10, after: Cursor): CommentModerationActionConnection!

commentModerationActionHistory returns a CommentModerationActionConnection that this User has created.

status: UserStatus!

status stores the user status information regarding moderation state.

tokens: [Token!]!

tokens lists the access tokens associated with the account.

ignoredUsers: [User!]!

ignoredUsers will return the list of ignored users.

notifications: UserNotificationSettings!

notifications stores the notification settings for the given User.

createdAt: Time!

createdAt is the time that the User was created at.

lastDownloadedAt: Time

lastDownloadedAt the last time the user made a download request of their account data.

scheduledDeletionDate: Time

scheduledDeletionDate is the time when the User is scheduled to be deleted.

deletedAt: Time

deletedAt is the time when the User was deleted.

moderationScopes: UserModerationScopes

moderationScopes describes the scopes for moderation. These only apply when the user has a MODERATOR role.

ssoURL: String

ssoURL is the url for managing sso account

mediaSettings: UserMediaSettings!

mediaSettings are the user's preferences around media stream behaviour.

bio: String

bio is a user-defined biography.

UserEdge

UserEdge represents a unique User in a UsersConnection.

Fields
node: User!

node is the User for this edge.

cursor: Cursor!

cursor is used in pagination.

UserMediaSettings

UserMediaSettings are the user's preferences around embed stream behaviour.

Fields
unfurlEmbeds: Boolean!

unfurlEmbeds is whether the user has chosen to immediately show embed contents without having to click "Show Tweet", "Show GIF", etc.

UserModerationScopes

UserModerationScopes describes the scopes for moderation. These only apply when the user has a MODERATOR role.

Fields
scoped: Boolean!

scoped returns true when the moderator has a scoped moderation role, and cannot moderate organization wide.

sites: [Site!]

sites (when not null) list the sites that the user is only allowed to moderate on. When null, it means that the user is allowed to moderate on all sites.

UsernameHistory

Fields
username: String!

username is the username that was assigned

createdBy: User!

createdBy is the user that created this username

createdAt: Time!

createdAt is the time the username was created

UsernameStatus

Fields
history: [UsernameHistory!]!

history is the list of all usernames for this user

UserNotificationSettings

UserNotificationSettings stores the notification settings for a given User.

Fields
onReply: Boolean!

onReply, when true, will enable notifications to be sent to users that have replies to their comments.

onFeatured: Boolean!

onFeatured, when true, will enable notifications to be sent to users that have their comment's featured.

onStaffReplies: Boolean!

onStaffReplies when true, will enable notifications to be sent to users that have a staff member reply to their comments. These notifications will supercede notifications that would have been sent for a basic reply notification.

onModeration: Boolean!

onModeration when true, will enable notifications to be sent to users when a comment that they wrote that was previously unpublished, becomes published due to a moderator action.

digestFrequency: DIGEST_FREQUENCY!

digestFrequency is the frequency to send notifications.

UsersConnection

UsersConnection represents a subset of a stories list.

Fields
edges: [UserEdge!]!

edges are a subset of UserEdge's.

nodes: [User!]!

nodes is a list of User's.

pageInfo: PageInfo!

pageInfo is information to aid in pagination.

UserStatus

UserStatus stores the user status information regarding moderation state.

Fields
current: [USER_STATUS!]!

current represents the current statuses applied to the User.

username: UsernameStatus!

username stores the history of username changes for this user

ban: BanStatus!

banned stores the user banned status as well as the history of changes.

suspension: SuspensionStatus!

suspension stores the user suspension status as well as the history of changes.

premod: PremodStatus!

premod stores the user premod status as well as the history of changes.

warning: WarningStatus!

warning stores the user warning status as well as the history of warnings

WarningStatus

Fields
active: Boolean!

active when true, indicates that the given user has been warned but has not acknowledged it.

message: String

message is the current message for the warning on the User.

history will return the status history items for warnings.

WarningStatusHistory

Fields
active: Boolean!

active when true, indicates that the given user has been warned but has not acknowledged the warning.

createdBy: User!

createdBy is the user that warned the commenter

createdAt: Time!

createdAt is the time the user was warned

acknowledgedAt: Time

acknowledgedAt is the time the commenter acknowledged the warning. if null then the warning has not been acknowledged

message: String

message is the custom message sent to the commenter

WarnUserPayload

Fields
clientMutationId: String!

clientMutationId is required for Relay support.

user: User!

user is the possibly modified User.

WebhookConfiguration

Fields
endpoints: [WebhookEndpoint!]!

endpoints is all the configured endpoints that should receive events.

WebhookDelivery

Fields
success: Boolean!
status: Int!
statusText: String!
request: String!
response: String!
createdAt: Time!

WebhookEndpoint

Fields
id: ID!

id is the unique identifier for this specific endpoint.

enabled: Boolean!

enabled when true will enable events to be sent to this endpoint.

url: String!

url is the URL that we will POST event data to.

signingSecret: SigningSecret!

signingSecret is the current secret used to sign the events sent out.

deliveries: [WebhookDelivery!]!

deliveries store the deliveries for each event sent for the last 50 events.

all: Boolean!

all is true when all events are subscribed to.

events: [WEBHOOK_EVENT_NAME!]!

events are the specific event names that this endpoint is configured to send for.

WordList

WordList describes all the available wordLists.

Fields
banned: [String!]!

banned words will by default reject the comment if it is found.

suspect: [String!]!

suspect words will simply flag the comment.

YouTubeMedia

YouTubeMedia is a specific YouTube video.

Fields
url: String!

url is the URL of a YouTube video.

still: String!

still is the thumbnail of the YouTube video.

title: String

title is the title of the YouTube video.

width: Int

width is the width of the YouTube video in pixels.

height: Int

height is the height of the YouTube video in pixels.

YouTubeMediaConfiguration

Fields
enabled: Boolean!

enabled is true when youtube media objects are enabled.

Input Types

AcknowledgeWarningInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

AddStoryExpertInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

storyID: ID!

storyID is the story to add the expert to.

userID: ID!

userID is the user to add as an expert to the story.

ApproveCommentInput

Arguments
commentID: ID!

commentID is the ID of the Comment that was approved.

commentRevisionID: ID!

commentRevisionID is the ID of the CommentRevision that is being approved.

clientMutationId: String!

clientMutationId is required for Relay support.

BanUserInput

Arguments
userID: ID!

userID is the ID of the User that should have their account banned.

clientMutationId: String!

clientMutationId is required for Relay support.

message: String!

message is sent to banned user via email.

siteIDs: [ID!]

site ID's to scope the ban to.

rejectExistingComments: Boolean

whether or not to reject all the user's previous comments when banning them.

CancelAccountDeletionInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

CloseStoryInput

Arguments
id: ID!

id is the identifier of the Story used either when the Story was created via the API or from Coral when it was lazily created.

clientMutationId: String!

clientMutationId is required for Relay support.

CommenterAccountFeaturesInput

CommenterAccountFeatures stores the configuration for commenter account features.

Arguments
changeUsername: Boolean

changeUsername when true, non-sso user may change username every 14 days

downloadComments: Boolean

downloadComments when true, user may download their comment history

deleteAccount: Boolean

deleteAccount when true, non-sso user may permanently delete their account

CreateAnnouncementInput

Arguments
content: String!

content of the announcement.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateCommentDontAgreeInput

Arguments
commentID: ID!

commentID is the Comment's ID that we want to create a DontAgree on.

commentRevisionID: ID!

commentRevisionID is the revision ID of the Comment that we're creating the DontAgree on.

additionalDetails: String

additionalDetails stores information from the User as to why the Flag was created or is relevant.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateCommentFlagInput

Arguments
commentID: ID!

commentID is the Comment's ID that we want to create a Flag on.

commentRevisionID: ID!

commentRevisionID is the revision ID of the Comment that we're creating the Flag on.

reason: COMMENT_FLAG_REPORTED_REASON!

reason is the selected reason why the Flag is being created.

additionalDetails: String

additionalDetails stores information from the User as to why the Flag was created or is relevant.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateCommentInput

CreateCommentInput provides the input for the createComment Mutation.

Arguments
nudge: Boolean

nudge when true will instead return an error related to recoverable moderation faults such as a toxic comment or spam comment to provide user feedback to nudge the user to correct the comment.

storyID: ID!

storyID is the ID of the Story where we are creating a comment on.

body: String!

body is the Comment body, the content of the Comment.

clientMutationId: String!

clientMutationId is required for Relay support.

media: CreateCommentMediaInput

media is the optional media attachment to be added to a Comment.

rating: Int

rating is the optional rating that can be added to a Comment.

CreateCommentMediaInput

CreateCommentMediaInput is used for creating media to be attached to a Comment.

Arguments
type: String!

type specifies the type of media that can be attached. Valid values for this are: giphy, external, twitter, and youtube.

id: String

id refers to a foreign id for the specific media provider.

url: String!

url is the URL to the media resource.

width: String

width is the width to the media resource.

height: String

height is the height to the media resource.

CreateCommentReactionInput

Arguments
commentID: ID!

commentID is the Comment's ID that we want to create a Reaction on.

commentRevisionID: ID!

commentRevisionID is the revision ID of the Comment that we're creating the Reaction on.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateCommentReplyInput

CreateCommentReplyInput provides the input for the createCommentReply Mutation.

Arguments
nudge: Boolean

nudge when true will instead return an error related to recoverable moderation faults such as a toxic comment or spam comment to provide user feedback to nudge the user to correct the comment.

storyID: ID!

storyID is the ID of the Story where we are creating a comment on.

parentID: ID!

parentID is the ID of the Comment that we are replying to.

parentRevisionID: ID!

parentRevisionID is the ID of the CommentRevision that we are replying to.

body: String!

body is the Comment body, the content of the Comment.

clientMutationId: String!

clientMutationId is required for Relay support.

media: CreateCommentMediaInput

media is the optional media attachment to be added to a Comment.

CreateExternalModerationPhaseInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

name: String!

name is the name assigned to this ExternalModerationPhase for identification purposes.

url: String!

url is the URL that Coral will POST moderation queries to.

format: COMMENT_BODY_FORMAT!

format is the format of the comment body sent.

timeout: Int!

timeout is the number of milliseconds that this moderation is maximum expected to take before it is skipped.

CreateModeratorNoteInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

body: String!

body is the content of the Note

userID: ID!

userID the id of the User who is the subject of the note.

CreateSite

Arguments
name: String!

name is the name of the Site.

allowedOrigins: [String!]!

allowedOrigins are the allowed origins for embeds.

CreateSiteInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

site: CreateSite!

site is the input for the Site to create.

CreateStory

CreateStory is the input required to create a Story.

Arguments
id: ID!

id is the identifier of the Story.

url: String!

url is the url that the Story is located on.

mode: STORY_MODE

mode is the specified mode that the story should be created with.

metadata: StoryMetadataInput

metadata is the set of information relating to this Story that would normally be scraped, but can be provided here.

closedAt: Time

closedAt when provided specifies the date that the given story will be closed at. If not provided, the story close will use the settings to determine the automatic close date.

CreateStoryInput

Arguments
story: CreateStory!

story is the Story input needed to create a Story.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateTokenInput

Arguments
name: String!

name is the desired name for the Token.

clientMutationId: String!

clientMutationId is required for Relay support.

CreateWebhookEndpointInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

url: String!

url is the URL that Coral will POST event data to.

all: Boolean!

all is true when all events are subscribed to.

events: [WEBHOOK_EVENT_NAME!]!

events are the specific event names that this endpoint is configured to send for.

DeactivateSSOSigningSecretInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

kid: ID!

kid is the ID of the SigningSecret being deactivated.

DeactivateTokenInput

Arguments
id: ID!

id is the ID of the Token that should be deactivated.

clientMutationId: String!

clientMutationId is required for Relay support.

DeleteAnnouncementInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

DeleteExternalModerationPhaseInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the ExternalModerationPhase being deleted.

DeleteModeratorNoteInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

userID: ID!

userID is the user who is the subject of the note

id: ID!

id is the identifier of the note

DeleteSSOSigningSecretInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

kid: ID!

kid is the ID of the SigningSecret being deleted.

DeleteUserAccountInput

Arguments
userID: ID!

userID is the ID of the User being deleted.

clientMutationId: String!

clientMutationId is required for Relay support.

DeleteWebhookEndpointInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the WebhookEndpoint being deleted.

DemoteUserInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

DisableExternalModerationPhaseInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the ExternalModerationPhase being disabled.

DisableFeatureFlagInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

flag: FEATURE_FLAG!

flag is the feature flag to delete.

DisableWebhookEndpointInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the WebhookEndpoint being disabled.

EditCommentInput

EditCommentInput provides the input for the editComment Mutation.

Arguments
commentID: ID!

commentID is the ID of the comment being edited.

body: String!

body is the Comment body, the content of the Comment.

clientMutationId: String!

clientMutationId is required for Relay support.

media: CreateCommentMediaInput

media is the optional media attachment to be added to a Comment.

EnableExternalModerationPhaseInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the ExternalModerationPhase being enabled.

EnableFeatureFlagInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

flag: FEATURE_FLAG!

flag is the feature flag to create.

EnableWebhookEndpointInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the WebhookEndpoint being enabled.

FeatureCommentInput

Arguments
commentID: ID!

commentID is the ID of the Comment that should be featured.

commentRevisionID: ID!

commentRevisionID is the ID of the CommentRevision that should be featured

clientMutationId: String!

clientMutationId is required for Relay support.

GiphyMediaConfigurationInput

Arguments
enabled: Boolean

enabled is true when gif search via giphy and giphy media objects are enabled.

maxRating: String

maximum allowed rating for gifs, g, pg, pg-13, r

key: String

key is the API key for Giphy.

IgnoreUserInput

Arguments
userID: ID!

userID is the ID of the User that should be ignored.

clientMutationId: String!

clientMutationId is required for Relay support.

InviteUsersInput

Arguments
emails: [String!]!

emails is the email addresses of the Users to be invited.

role: USER_ROLE!

role is the designated role of the User being invited.

clientMutationId: String!

clientMutationId is required for Relay support.

LiveConfigurationInput

LiveConfigurationInput provides configuration options related to live updates.

Arguments
enabled: Boolean

enabled when true will allow live updates.

MediaConfigurationInput

Arguments
twitter: TwitterMediaConfigurationInput

twitter is the configuration for Twitter support.

youtube: YouTubeMediaConfigurationInput

youtube is the configuration for YouTube support.

giphy: GiphyMediaConfigurationInput

giphy is the configuration for Giphy support.

MergeStoriesInput

Arguments
sourceIDs: [ID!]!

sourceIDs are the list of Story ID's that should have their Comment's moved onto the Story indicated by destinationID. The Stories indicated by the sourceIDs field will be removed after the Comment's have been moved.

destinationID: ID!

destinationID is the ID of the Story where all the other "source" Stories will have their Comment's moved onto.

clientMutationId: String!

clientMutationId is required for Relay support.

ModerationScopesInput

ModerationScopesInput describes the different scopes that a given moderator could be assigned.

Arguments
siteIDs: [ID!]

siteIDs is an array of ID's that should be the list of sites that a moderator is limited to. If none are passed, it will remove the scoping for this User.

NewCommentersConfigurationInput

NewCommenterConfigurationInput specifies the features that apply to new commenters

Arguments
premodEnabled: Boolean

premodEnabled ensures that new commenters' comments are pre-moderated until they have enough approved comments

approvedCommentsThreshold: Int

approvedCommentsThreshold is the number of comments a user must have approved before their comments do not require premoderation

OpenStoryInput

Arguments
id: ID!

id is the identifier of the Story used either when the Story was created via the API or from Coral when it was lazily created.

clientMutationId: String!

clientMutationId is required for Relay support.

PremodUserInput

Arguments
userID: ID!

userID is the ID of the User that should be premodded.

clientMutationId: String!

clientMutationId is required for Relay support.

PromoteUserInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

ReactionConfigurationInput

ReactionConfigurationInput stores the configuration for reactions used across this Tenant.

Arguments
icon: String

icon is the string representing the icon to be used for the reactions.

iconActive: String

iconActive is the string representing the icon that should be used when the icon should be considered active.

label: String

label is the string placed beside the reaction icon to provide better context.

labelActive: String

labelActive is the string placed beside the reaction icon to provide better context when it has been selected.

sortLabel: String

sortLabel is the string placed inside of the sort menu to sort for comment with most reactions.

color: String

color is the hex color code that can be used to change the color of the button.

RecentCommentHistoryConfigurationInput

RecentCommentHistoryConfigurationInput controls the beheviour around when comments from Users should be marked for pre-moderation automatically once they have reached the trigger rate for rejected comments.

Arguments
enabled: Boolean

enabled when true will pre-moderate users new comments once they have reached the trigger rejection rate.

timeFrame: Int

timeFrame specifies the number of seconds that comments from a given User will be taken into account when computing their rejection rate.

triggerRejectionRate: Float

triggerRejectionRate specifies the percentage of comments that a given User may have before their comments will then be placed into pre-moderation until the rejection rate decreases.

RejectCommentInput

Arguments
commentID: ID!

commentID is the ID of the Comment that was rejected.

commentRevisionID: ID!

commentRevisionID is the ID of the CommentRevision that is being rejected.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveCommentDontAgreeInput

Arguments
commentID: ID!

commentID is the Comment's ID that we want to remove a DontAgree on.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveCommentReactionInput

Arguments
commentID: ID!

commentID is the Comment's ID that we want to remove a Reaction on.

clientMutationId: String!

clientMutationId is required for Relay support.

RemovePremodUserInput

Arguments
userID: ID!

userID is the ID of the User that should be premodded.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveStoryExpertInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

storyID: ID!

storyID is the story to remove the expert from.

userID: ID!

userID is the user to remove as an expert from the story.

RemoveStoryInput

Arguments
id: ID!

id is the identifier of the Story used either when the Story was created via the API or from Coral when it was lazily created.

includeComments: Boolean

includeComments when true will remove any Comment's that were left on the Story. This option should be used rarely, instead preferring to updating the Story URL and/or merging with the correct Story.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveUserBanInput

Arguments
userID: ID!

userID is the ID of the User that should have their account un-banned.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveUserIgnoreInput

Arguments
userID: ID!

userID is the ID of the User that should have the ignore removed.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveUserSuspensionInput

Arguments
userID: ID!

userID is the ID of the User that should have their active suspensions removed.

clientMutationId: String!

clientMutationId is required for Relay support.

RemoveUserWarningInput

Arguments
userID: ID!

userID is the ID of the User that should be warned.

clientMutationId: String!

clientMutationId is required for Relay support.

RequestAccountDeletionInput

Arguments
password: String!

password to verify for the current User.

clientMutationId: String!

clientMutationId is required for Relay support.

RequestCommentsDownloadInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

RequestUserCommentsDownloadInput

Arguments
userID: ID!

userID specifies user to download comments for

clientMutationId: String!

clientMutationId is required for Relay support.

RotateExternalModerationPhaseSigningSecretInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the ExternalModerationPhase being updated.

inactiveIn: Int!

inactiveIn is the number of seconds that the current active Secret should be kept active.

RotateSSOSigningSecretInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

inactiveIn: Int!

inactiveIn is the number of seconds that the current active SigningSecret should be kept active (allow signed tokens signed with this secret) before rejecting them.

RotateWebhookEndpointSigningSecretInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the WebhookEndpoint being updated.

inactiveIn: Int!

inactiveIn is the number of seconds that the current active Secret should be kept active.

RTEConfigurationInput

RTEConfigurationInput specifies the configuration for the rte.

Arguments
enabled: Boolean!

enabled when true turns on basic RTE features including bold, italic, quote, and bullet list.

strikethrough: Boolean!

strikethrough when true turns on the strikethrough feature.

spoiler: Boolean!

spoiler when true turns on the spoiler feature.

ScrapeStoryInput

Arguments
id: ID!

id is the identifier of the Story used either when the Story was created via the API or from Coral when it was lazily created.

clientMutationId: String!

clientMutationId is required for Relay support.

SectionFilter

Arguments
name: String

name when provided will filter only those comments/stories that have this section. When name is not provided or is null, only comments/stories without a section (uncategorized) will be returned. In order to return all comments/stories regardless of section, specify null or undefined for this filter option.

SetEmailInput

Arguments
email: String!

email is the email address to be associated with the User.

clientMutationId: String!

clientMutationId is required for Relay support.

SetPasswordInput

Arguments
password: String!

password is the password that should be associated with the User.

clientMutationId: String!

clientMutationId is required for Relay support.

SettingsAkismetExternalIntegrationInput

Arguments
enabled: Boolean

enabled when True will enable the integration.

ipBased: Boolean

ipBased when True will enable IP-based spam detection.

key: String

The key for the Akismet integration.

site: String

The site (blog) for the Akismet integration.

SettingsAuthenticationTargetFilterInput

SettingsAuthInput

Auth contains all the settings related to authentication and authorization.

Arguments
integrations: SettingsAuthIntegrationsInput

integrations are the set of configurations for the variations of authentication solutions.

sessionDuration: Int!

sessionDuration determines the duration in seconds for which an access token is valid

SettingsAuthIntegrationsInput

Arguments
local: SettingsLocalAuthIntegrationInput

local stores configuration related to email/password based logins.

sso: SettingsSSOAuthIntegrationInput

sso stores configuration related to Single Sign On based logins.

oidc: SettingsOIDCAuthIntegrationInput

oidc stores configuration related to OpenID Connect based logins.

google: SettingsGoogleAuthIntegrationInput

google stores configuration related to Google based logins.

facebook: SettingsFacebookAuthIntegrationInput

facebook stores configuration related to Facebook based logins.

SettingsCharCountInput

Arguments
enabled: Boolean

enabled when true, enables the character count moderation phase.

min: Int

min is the smallest length of a Comment that may be posted.

max: Int

max is the largest length of a Comment that may be posted.

SettingsCloseCommentingInput

Arguments
auto: Boolean

auto when true will configure the automatic close on each story as they are created based on the current configured timeout option.

timeout: Int

timeout is the amount of seconds from the createdAt timestamp that a given story will be considered closed.

message: String

message when provided will be the message that shows when the comment stream is closed for commenting.

SettingsCommunityGuidelinesInput

Arguments
enabled: Boolean

enable set to true will show the guidelines above the message box.

content: String

content of the guidelines.

SettingsDisableCommentingInput

Arguments
enabled: Boolean

enabled when true will disable commenting site-wide.

message: String

message will be shown above the comment stream while commenting is disabled site-wide.

SettingsEmailConfigurationInput

Arguments
enabled: Boolean

enabled when True, will enable the emailing functionality in Coral.

SettingsExternalIntegrationsInput

Arguments
akismet: SettingsAkismetExternalIntegrationInput

akismet provides integration with the Akismet Spam detection service.

perspective: SettingsPerspectiveExternalIntegrationInput

perspective provides integration with the Perspective API comment analysis platform.

SettingsFacebookAuthIntegrationInput

Arguments
enabled: Boolean

enabled, when true, will enable Facebook as an authentication integration.

allowRegistration: Boolean

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter: SettingsAuthenticationTargetFilterInput

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

clientID: String

clientID is the Client Identifier as provided by the Facebook Developer Console.

clientSecret: String

clientSecret is the Client Secret as provided by the Facebook Developer Console.

SettingsGoogleAuthIntegrationInput

Arguments
enabled: Boolean

enabled, when true, will enable Google as an authentication integration.

allowRegistration: Boolean

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter: SettingsAuthenticationTargetFilterInput

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

clientID: String

clientID is the Client Identifier as provided by the Google API Console.

clientSecret: String

clientSecret is the Client Secret as provided by the Google API Console.

SettingsInput

SettingsInput is the partial type of the Settings type for performing mutations.

Arguments
live: LiveConfigurationInput

live provides configuration options related to live updates for stories on this site.

moderation: MODERATION_MODE

moderation is the moderation mode for all Stories on the site.

communityGuidelines: SettingsCommunityGuidelinesInput

communityGuidelines will be shown in the comments stream.

premodLinksEnable: Boolean

premodLinksEnable will put all comments that contain links into premod.

customCSSURL: String

customCSSURL is the URL of the custom CSS used to display on the frontend.

disableCommenting: SettingsDisableCommentingInput

disableCommenting will disable commenting site-wide.

editCommentWindowLength: Int

editCommentWindowLength is the length of time (in seconds) after a comment is posted that it can still be edited by the author.

organization: SettingsOrganizationInput

organization stores information about the organization behind this specific instance of Coral.

closeCommenting: SettingsCloseCommentingInput

closeCommenting contains settings related to the automatic closing of commenting on Stories.

wordList: SettingsWordListInput

wordList will return a given list of words.

email: SettingsEmailConfigurationInput

email is the set of credentials and settings associated with the organization.

auth: SettingsAuthInput

auth contains all the settings related to authentication and authorization.

integrations: SettingsExternalIntegrationsInput

integrations contains all the external integrations that can be enabled.

recentCommentHistory: RecentCommentHistoryConfigurationInput

recentCommentHistory is the set of settings related to how automatic pre-moderation is controlled.

charCount: SettingsCharCountInput

charCount stores the character count moderation settings.

stories: StoryConfigurationInput

stories stores the configuration around stories.

reaction: ReactionConfigurationInput

reaction specifies the configuration for reactions.

staff: StaffConfigurationInput

staff specifies the configuration for the staff badges assigned to users with any role above COMMENTER.

accountFeatures: CommenterAccountFeaturesInput

accountFeatures specifies the configuration for accounts.

slack: SlackConfigurationInput

slack specifies the configuration for Slack integration.

locale: Locale

locale specifies the locale for this Tenant.

newCommenters: NewCommentersConfigurationInput

newCommenters is the configuration for how new commenters comments are treated.

premoderateSuspectWords: Boolean

premoderateSuspectWords when enabled will cause any comments that contain suspect words to be sent to pre-moderation to be reviewed by a moderator prior to being presented in stream.

rte: RTEConfigurationInput

rte is the configuration of the Rich-Text-Editor.

media: MediaConfigurationInput

media is the configuration media content attached to Comment's.

memberBios: Boolean

memberBios is whether members can define a bio for their account.

SettingsLocalAuthIntegrationInput

Arguments
allowRegistration: Boolean

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter: SettingsAuthenticationTargetFilterInput

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

SettingsOIDCAuthIntegrationInput

Arguments
enabled: Boolean

enabled, when true, allows the integration to be enabled.

allowRegistration: Boolean

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter: SettingsAuthenticationTargetFilterInput

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

name: String

name is the label assigned to reference the provider of the OIDC integration, and will be used in situations where the name of the provider needs to be displayed, like the login button.

clientID: String

clientID is the Client Identifier as defined in:

https://tools.ietf.org/html/rfc6749#section-2.2

clientSecret: String

clientSecret is the Client Secret as defined in:

https://tools.ietf.org/html/rfc6749#section-2.3.1

authorizationURL: String

authorizationURL is defined as the authorization_endpoint in:

https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata

tokenURL: String
jwksURI: String
issuer: String

SettingsOrganizationInput

Arguments
name: String

name is the name of the organization.

contactEmail: String

contactEmail is the email of the organization.

url: String

url is the URL to the organizations home page.

SettingsPerspectiveExternalIntegrationInput

Arguments
enabled: Boolean

enabled when True will enable the integration.

endpoint: String

The endpoint that Coral should use to communicate with the perspective API.

key: String

The key for the Perspective API integration.

model: String

model is the name of the Perspective model to use.

threshold: Float

The threshold that given a specific toxic comment score, the comment will be marked by Coral as toxic.

doNotStore: Boolean

When True, comments sent will not be stored by the Google Perspective API.

sendFeedback: Boolean

When True, moderation actions will be sent to the Google Perspective API.

SettingsSMTPInput

SettingsSSOAuthIntegrationInput

Arguments
allowRegistration: Boolean

allowRegistration when true will allow users that have not signed up before with this authentication integration to sign up.

targetFilter: SettingsAuthenticationTargetFilterInput

targetFilter will restrict where the authentication integration should be displayed. If the value of targetFilter is null, then the authentication integration should be displayed in all targets.

SettingsWordListInput

Arguments
banned: [String!]

banned words will by default reject the comment if it is found.

suspect: [String!]

suspect words will simply flag the comment.

SetUsernameInput

Arguments
username: String!

username is the desired username that should be set to the current User.

clientMutationId: String!

clientMutationId is required for Relay support.

SlackChannelConfigurationInput

Arguments
enabled: Boolean

enabled is whether this Slack channel is enabled to send comments to its correlated web hook

name: String

name is the name assigned to the Slack channel

hookURL: String

hookURL defines the URL that comments will be sent to

triggers: SlackTriggersConfigurationInput

triggers are the filters of types of comments that will be sent to the correlated channel

SlackConfigurationInput

Arguments
channels: [SlackChannelConfigurationInput!]

channels are the channels configured for Slack integration

SlackTriggersConfigurationInput

Arguments
reportedComments: Boolean

reportedComments is whether this channel will receive reported comments

pendingComments: Boolean

pendingComments is whether this channel will receive pending comments

featuredComments: Boolean

featuredComments is whether this channel will receive featured comments

allComments: Boolean

allComents is whether the channel will receive all comments

staffComments: Boolean

staffComments is whether the channel will receive staff comments

StaffConfigurationInput

StaffConfigurationInput specifies the configuration for the staff badges assigned to users with any role above COMMENTER.

Arguments
staffLabel: String

staffLabel is the string used when displaying the STAFF badge to users.

adminLabel: String

adminLabel is the string used when displaying the ADMIN badge to users.

moderatorLabel: String

moderatorLabel is the string used when displaying the MODERATOR badge to users.

StoryConfigurationInput

StoryConfiguration stores the configuration for working with stories.

Arguments
scraping: StoryScrapingConfigurationInput

scraping stores configuration around story scraping.

disableLazy: Boolean

disableLazy when true, will only allow lookups of stories created via the API.

StoryMessageBoxInput

StoryMessageBoxInput stores settings related to the Story Message Box.

Arguments
enabled: Boolean

enable when true will enable the Message Box on the comment stream.

icon: String

icon when set will reference the string for the Message box used by the Message Box.

content: String

content when set contains the actual markup for the Message Box.

StoryMetadataInput

StoryMetadataInput is the metadata for a given Story as provided via this API.

Arguments
title: String

title stores the title from the Story page.

author: String

author stores the author from the Story page.

description: String

description stores the description from the Story page.

image: String

image stores the image from the Story page.

publishedAt: Time

publishedAt stores the publication date from the Story page.

modifiedAt: Time

modifiedAt stores the modified date from the Story page.

section: String

section stores the section from the Story page.

StoryScrapingConfigurationInput

StoryScrapingConfigurationInput stores the configuration around story scraping.

Arguments
enabled: Boolean

enabled, when true, enables stories to be scraped. When disabled, stories will only be looked up instead, and must be created via the API directly.

proxyURL: String

proxyURL when specified, allows scraping requests to use the provided proxy. All requests will then be passed through the appropriote proxy as parsed by the proxy-agent package.

customUserAgent: String

customUserAgent when specified will override the user agent used by fetch requests made during the scraping process.

SuspendUserInput

Arguments
userID: ID!

userID is the ID of the User that should be suspended.

timeout: Int!

timeout is the length of time (in seconds) that a User should be suspended for.

clientMutationId: String!

clientMutationId is required for Relay support.

message: String!

message is sent to suspended user via email.

TestSMTPInput

TwitterMediaConfigurationInput

Arguments
enabled: Boolean

enabled is true when twitter media objects are enabled.

UnfeatureCommentInput

Arguments
commentID: ID!

commentID is the ID of the featured Comment that should be unfeatured.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateBioInput

Arguments
bio: String

bio is the desired bio that should be set to the current User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateEmailInput

Arguments
email: String!

email is the email address to set for the User.

password: String!

password is the users password.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateExternalModerationPhaseInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the ExternalModerationPhase being updated.

name: String

name is the name assigned to this ExternalModerationPhase for identification purposes.

url: String

url is the URL that Coral will POST moderation queries to.

format: COMMENT_BODY_FORMAT

format is the format of the comment body sent.

timeout: Int

timeout is the number of milliseconds that this moderation is maximum expected to take before it is skipped.

UpdateNotificationSettingsInput

Arguments
onReply: Boolean

onReply, when true, will enable notifications to be sent to users that have replies to their comments.

onFeatured: Boolean

onFeatured, when true, will enable notifications to be sent to users that have their comment's featured.

onStaffReplies: Boolean

onStaffReplies when true, will enable notifications to be sent to users that have a staff member reply to their comments. These notifications will supercede notifications that would have been sent for a basic reply notification.

onModeration: Boolean

onModeration when true, will enable notifications to be sent to users when a comment that they wrote that was previously unpublished, becomes published due to a moderator action.

digestFrequency: DIGEST_FREQUENCY

digestFrequency is the frequency to send notifications.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdatePasswordInput

Arguments
oldPassword: String!

oldPassword is the old password that that should be compared against when trying to change the password before the change.

newPassword: String!

newPassword is the new password that should be associated with the User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateSettingsInput

UpdateSettingsInput provides the input for the updateSettings Mutation.

Arguments
settings: SettingsInput!

settings is the partial set of settings that will be used as a patch against the existing settings object.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateSite

Arguments
name: String

name is the name of the Site.

url: String

url is the Site URL, seen in email communications.

contactEmail: String

contactEmail is the contact email for the Site, seen in email communications.

allowedOrigins: [String!]

allowedOrigins are the allowed origins for embeds.

UpdateSiteInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the Site to update.

site: UpdateSite!

site is the updates for the Site.

UpdateStory

UpdateStory is the input required to update a Story.

Arguments
url: String

url is the url that the Story is located on.

metadata: StoryMetadataInput

metadata is the set of information relating to this Story that would normally be scraped, but can be provided here.

UpdateStoryInput

Arguments
id: ID!

id is the identifier of the Story used either when the Story was created via the API or from Coral when it was lazily created.

story: UpdateStory!

story contains the fields that should be updated. Any fields not specified will not be changed.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateStoryModeInput

Arguments
storyID: ID!

storyID is the story id to enable Q&A on.

mode: STORY_MODE!

mode is the mode to set the story to.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateStorySettings

UpdateStorySettings is the input required to update a Story's Settings.

Arguments
live: LiveConfigurationInput

live provides configuration options related to live updates on this Story.

moderation: MODERATION_MODE

moderation determines whether or not this is a PRE or POST moderated story.

premodLinksEnable: Boolean

premodLinksEnable will put all comments that contain links into premod.

messageBox: StoryMessageBoxInput

messageBox stores settings related to the Story Message Box.

UpdateStorySettingsInput

Arguments
id: ID!

id is the identifier of the Story used either when the Story was created via the API or from Coral when it was lazily created.

settings: UpdateStorySettings!

settings contains the fields on the story settings that should be updated. Any fields not specified will not be changed.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUserAvatarInput

Arguments
userID: ID!

userID is the ID of the User that should have their avatar updated.

avatar: String

avatar is the URL to the avatar to set for the User. If set to null or not provided, it will be unset.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUserEmailInput

Arguments
userID: ID!

userID is the ID of the User that should have their email address updated.

email: String!

email is the email address to set for the User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUserMediaSettingsInput

UpdateUserModerationScopesInput

Arguments
userID: ID!

userID is the ID of the User that should have their role updated.

moderationScopes: ModerationScopesInput!

moderationScopes defines the scopes that a given moderator should be limited to when

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUsernameInput

Arguments
username: String!

username is the desired username that should be set to the current User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUserRoleInput

Arguments
userID: ID!

userID is the ID of the User that should have their role updated.

role: USER_ROLE!

role is the USER_ROLE that the User should be set to.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateUserUsernameInput

Arguments
userID: ID!

userID is the ID of the User that should have their username updated.

username: String!

username is the desired username to set for the User.

clientMutationId: String!

clientMutationId is required for Relay support.

UpdateWebhookEndpointInput

Arguments
clientMutationId: String!

clientMutationId is required for Relay support.

id: ID!

id is the ID of the WebhookEndpoint being updated.

url: String

url is the URL that Coral will POST event data to.

all: Boolean

all is true when all events are subscribed to.

events: [WEBHOOK_EVENT_NAME!]

events are the specific event names that this endpoint is configured to send for.

WarnUserInput

Arguments
userID: ID!

userID is the ID of the User that should have their account banned.

clientMutationId: String!

clientMutationId is required for Relay support.

message: String!

message is displayed to the user in the stream

YouTubeMediaConfigurationInput

Arguments
enabled: Boolean

enabled is true when youtube media objects are enabled.

Unions

CommentMedia

CommentMedia is the various media types that can be attached to a Comment.

Profile

Profile is all the different profiles that a given User may have associated with their account.

Enums

COMMENT_BODY_FORMAT

COMMENT_BODY_FORMAT describes the various formats that a comment body can be provided in.

Possible Enum Values
HTML

HTML describes the format of the comment body using HTML.

PLAIN_TEXT

PLAIN_TEXT describes the format of the comment body with the HTML stripped.

COMMENT_FLAG_REASON

COMMENT_FLAG_REASON is the union of the COMMENT_FLAG_REPORTED_REASON and COMMENT_FLAG_DETECTED_REASON types.

Possible Enum Values
COMMENT_REPORTED_OFFENSIVE
COMMENT_REPORTED_ABUSIVE
COMMENT_REPORTED_SPAM
COMMENT_REPORTED_OTHER
COMMENT_REPORTED_BIO
COMMENT_DETECTED_TOXIC
COMMENT_DETECTED_SPAM
COMMENT_DETECTED_LINKS
COMMENT_DETECTED_BANNED_WORD
COMMENT_DETECTED_SUSPECT_WORD
COMMENT_DETECTED_RECENT_HISTORY
COMMENT_DETECTED_PREMOD_USER
COMMENT_DETECTED_NEW_COMMENTER
COMMENT_DETECTED_REPEAT_POST

COMMENT_FLAG_REPORTED_REASON

COMMENT_FLAG_REPORTED_REASON is a reason that is reported by a User on a Comment.

Possible Enum Values
COMMENT_REPORTED_OFFENSIVE

COMMENT_REPORTED_OFFENSIVE is used when a User reported a Comment as being offensive.

COMMENT_REPORTED_ABUSIVE

COMMENT_REPORTED_ABUSIVE is used when a User reported a Comment as being abusive.

COMMENT_REPORTED_SPAM

COMMENT_REPORTED_SPAM is used when a User reported a Comment as appearing like spam.

COMMENT_REPORTED_OTHER

COMMENT_REPORTED_OTHER is used when a User reported a Comment that doesn't fit into the other reported reasons.

COMMENT_REPORTED_BIO

COMMENT_REPORTED_BIO is used when a User reports a bio that is offensive or abusive.

COMMENT_SORT

Possible Enum Values
CREATED_AT_DESC
CREATED_AT_ASC
REPLIES_DESC
REACTION_DESC

COMMENT_STATUS

Possible Enum Values
NONE

The comment is not PREMOD, but was not applied a moderation status by a moderator.

APPROVED

The comment has been approved by a moderator.

REJECTED

The comment has been rejected by a moderator.

PREMOD

The comment was created while the stories premoderation option was on, and new comments that haven't been moderated yet are referred to as "premoderated" or "premod" comments.

SYSTEM_WITHHELD

SYSTEM_WITHHELD represents a comment that was withheld by the system because it was flagged by an internal process for further review.

DIGEST_FREQUENCY

Possible Enum Values
NONE

NONE will have the notifications send immediatly rather than bundling for digesting.

DAILY

DAILY will queue up the notifications and send them daily.

HOURLY

HOURLY will queue up the notifications and send them hourly.

FEATURE_FLAG

Possible Enum Values
SECTIONS

SECTIONS when enabled will allow filtering comments in the moderation queue by section.

DISABLE_WARN_USER_OF_TOXIC_COMMENT

DISABLE_WARN_USER_OF_TOXIC_COMMENT when enabled will turn off warnings for toxic comments.

ENABLE_QA

ENABLE_QA when enabled will turn off Q&A features client side.

DEFAULT_QA_STORY_MODE

DEFAULT_QA_STORY_MODE will set the story mode to QA by default.

SITE_MODERATOR

SITE_MODERATOR will enable the enhanced Site Moderator role by assigning a new modeartion scope to a user.

REDUCED_SECURITY_MODE

REDUCED_SECURITY_MODE when true will allow unpersisted queries to be executed in production environments.

DISCUSSIONS

DISCUSSIONS will enable the discussions tab for the comment stream.

READ_MORE_NEW_TAB

READ_MORE_NEW_TAB will enable opening a new tab when a user clicks on "read more of this conversation" in the comment stream.

AVATARS

AVATARS will enable pulling an avatar URL from sso token and displaying it next to user comments

NEW_COMMENT_COUNT

NEW_COMMENT_COUNT enables the comment count update feature.

EXTERNAL_MEDIA

EXTERNAL_MEDIA enables embedding external images

RTE_SARCASM

RTE_SARCASM enables sarcasm RTE feature

VIEWER_COUNT

VIEWER_COUNT when true will enable the display and tracking of the viewer count.

ALTERNATE_OLDEST_FIRST_VIEW

ALTERNATE_OLDEST_FIRST_VIEW when enabled will move the create comment form to the bottom of the stream when sorting the comment stream by oldest first.

ENABLE_RATINGS_AND_REVIEWS

ENABLE_RATINGS_AND_REVIEWS when enabled will allow for the ratings and reviews functionality to be enabled.

FLATTEN_REPLIES

FLATTEN_REPLIES when enabled, will cause all replies that would normally be hidden by a "Show more of this conversation" button to be displayed linearly sorted by date.

ENABLE_AMP

ENABLE_AMP will enable support for embedding Coral within AMP pages.

DISABLE_LIVE_UPDATES

DISABLE_LIVE_UPDATES will disable live updates at the tenant level and overrides the configuration option available in the Admin UI for that tenant.

MODERATION_MODE

Possible Enum Values
PRE

Comments posted while in PRE mode will be labeled with a PREMOD status and will require a moderator decision before being visible.

POST

Comments posted while in POST will be visible immediately.

STORY_MODE

Possible Enum Values
COMMENTS

Coments is when a story is used for general commenting.

QA

QA is used for when the story is in Q&A mode.

RATINGS_AND_REVIEWS

RATINGS_AND_REVIEWS is used for when the story should be used for ratings and reviews.

STORY_STATUS

STORY_STATUS represents filtering states that a Story can be in.

Possible Enum Values
OPEN

OPEN represents when a given Story is open for commenting.

CLOSED

CLOSED represents when a given Story is not open for commenting.

TAG

Possible Enum Values
STAFF

STAFF is used when a Comment is written by a User that has the STAFF, ADMIN, or MODERATOR role.

ADMIN

ADMIN is used when a Comment is written by a User that has the ADMIN, role.

MODERATOR

MODERATOR is used when a Comment is written by a User that has the MODERATOR, role.

FEATURED

FEATURED is used when a Comment is marked as such by a staff member.

EXPERT

EXPERT is used when an a Comment is written by a User that is assigned as an expert on a story.

UNANSWERED

UNANSWERED is used when a Comment is written by a user and has not been answered by an expert on a Story that is set to Q&A.

REVIEW

REVIEW is used when a Comment is written with a rating on a Story that is set to Ratings and Reviews.

QUESTION

QUESTION is used when a Comment is written without a rating on a Story that is set to Ratings and Reviews.

USER_ROLE

Possible Enum Values
COMMENTER
STAFF
MODERATOR
ADMIN

USER_STATUS

USER_STATUS is used to describe the current state of a User. A User may exist in multiple states.

Possible Enum Values
ACTIVE

ACTIVE is used when a User is not suspended or banned.

BANNED

BANNED is used when a User is banned.

SUSPENDED

SUSPENDED is used when a User is currently suspended.

PREMOD

PREMOD is used when a User is currently set to require pre-moderation.

WARNED

WARNED is used when a user has been warned about behaviour and has not acknowledged

USER_STATUS_FILTER

Possible Enum Values
ACTIVE

ACTIVE is used when a User is not suspended or banned.

BANNED

BANNED is used when a User is banned.

SUSPENDED

SUSPENDED is used when a User is currently suspended.

PREMOD

PREMOD is used when a User is currently set to require pre-moderation.

WARNED

WARNED is used when a user has been warned about behaviour and has not acknowledged

SITE_BANNED

SITE_BANNED is used when a User is site banned.

WEBHOOK_EVENT_NAME

Possible Enum Values
STORY_CREATED

Scalars

Boolean

The Boolean scalar type represents true or false.

Cursor

Cursor represents a paginating cursor.

Float

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

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.

Locale

Locale represents a language code in the BCP 47 format.

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.

Time

Time represented as an ISO8601 string.