Discourse
Discourse is a powerful open-source forum software.
Data integration: Skyvia supports importing data to and from Discourse, exporting Discourse data to CSV files, replicating Discourse data to relational databases, and synchronizing Discourse data with other cloud apps and relational databases.
Backup: Skyvia Backup does not support Discourse.
Query: Skyvia Query supports Discourse.
Establishing Connection
To establish a connection to Discourse, you must provide the Host URL, API Key, and User Name.
Getting Credentials
Host URL — Login to Discourse and copy the URL value of the Discourse. Note that it must include the protocol part (‘https://’), and must not include the slash (/) at the end. For example: https://mycorp.discourse.group
User Name — the name of the user you log in to Discourse with. You can get it on the User tab of the Admin panel.
API Key — To get the API Key, perform the following steps:
- Sign in to Discourse
- Click the button with three strips, then select Admin, and switch to the API tab.
- Click +New API Key.
-
Specify the Description, the User level, and Scope. We recommend selecting the most comprehensive possible scopes.
- Click Save.
-
Copy the displayed Key. Note that this is the only time it is displayed. If you ever need an API key again, you will need to create a new one.
Creating Connection
Copy the obtained credentials to the corresponding boxes in the Skyvia connection editor.
Connector Specifics
Object peculiarities
The DELETE operation against the Posts and LatestTopics tables performs soft delete. The deleted records remain in the table with the filled DeletedAt value. When selecting all records from these tables, the records with not empty DeletedAt value are not displayed. When selecting specific records by their ids, the deleted records are displayed.
Incremental Replication and Synchronization
Replication with Incremental Updates is supported for the following objects: Backups, Notifications, Posts, RepliestToPost, LatestTopics, ActiveUsers, UserActions. Note that only newly created objects are detected of the Notifications, LatestTopics, UserActions, and ActiveUsers objects because they have only the CreatedDate field, and don’t have the UpdatedDate field.
Only the Posts object supports synchronization.
DML Operations support
Operation | Object |
---|---|
INSERT, UPDATE, DELETE | Badges, Groups, LatestTopics, Posts |
INSERT, DELETE | ActiveUsers |
INSERT, UPDATE | Categories, TagGroups |
INSERT | PrivateMessagesSentForUser |
Stored procedures
call SuspendUser(:UserId,:SuspendUntil,:Reason,:Message,:PostAction)
suspends the user activity.
The suspended users are displayed in the ActiveUsers and the SuspendedUsers tables.
The required parameters for this procedure are
- :UserId (required) - the Id of the user whose activity has to be suspended.
- :SuspendUntil (required) - the date the user is suspended until.
- :Reason (required) - the explanation why the user is suspended.
- :Message - the message to send to the suspended user.
For example,
call SuspendUser(7,'2022-12-15','some reason','some message','delete')
call SilenceUser(:UserId,:SilencedTill,:Reason,:Message,:PostAction)
changes user status to Silence.
The required parameter for this procedure is :UserId.
call AnonymizeUser(:UserId)
changes user status to Anonim.
call UpdateUsername(:Username,:NewUsername)
updates the Username value.
- :Username is current Username field value.
- :NewUsername is a new Username field value.
call AddGroupMembers(:groupId,:username)
adds the user in the specific group.
call RemoveGroupMembers(:groupId,:username)
removes the user from the specific group.
call MarkNotificationsAsRead(:NotificationId)
marks the existing notification as read.
Supported Actions
Skyvia supports all the common actions for Discourse.