Skip to main content

Forum Configuration Reference

This page documents all Channel (forum) configuration fields.

Channel Fields

Basic Information

FieldTypeDescription
uniqueNameString!URL-friendly identifier (cannot be changed)
displayNameStringUser-facing name
descriptionStringChannel description
channelIconURLStringChannel icon image URL
channelBannerURLStringChannel banner image URL
rulesJSONChannel-specific rules (Markdown)
createdAtDateTimeCreation timestamp

Feature Toggles

FieldTypeDefaultDescription
eventsEnabledBooleantrueAllow event creation
wikiEnabledBooleantrueEnable wiki section
feedbackEnabledBooleantrueAllow moderator feedback comments
downloadsEnabledBooleantrueAllow downloadable files
emojiEnabledBooleantrueAllow emoji reactions
imageUploadsEnabledBooleantrueAllow direct image uploads
markdownImagesEnabledBooleantrueAllow markdown image URLs
markAsAnsweredEnabledBooleantrueAllow marking best answers

Lock Status

FieldTypeDescription
lockedBooleanWhether channel is locked
lockedAtDateTimeWhen channel was locked
lockReasonStringReason for locking
LockedByModerationProfileWho locked the channel

File Settings

FieldTypeDescription
allowedFileTypes[String]Allowed file extensions (overrides server)

Relationships

Content

RelationshipTargetDescription
DiscussionChannels[DiscussionChannel]Discussions in this channel
EventChannels[EventChannel]Events in this channel
Comments[Comment]Comments in this channel
WikiHomePageWikiPageWiki home page
Tags[Tag]Tags used in this channel

Users

RelationshipTargetDescription
Admins[User]Channel owners
Moderators[ModerationProfile]Channel moderators
Bots[User]Bot accounts

Invitations

RelationshipTargetDescription
PendingOwnerInvites[User]Pending owner invitations
PendingModInvites[User]Pending mod invitations

Suspensions

RelationshipTargetDescription
SuspendedUsers[Suspension]Suspended users
SuspendedMods[Suspension]Suspended moderators

Issues

RelationshipTargetDescription
Issues[Issue]Moderation issues

Configuration

RelationshipTargetDescription
FilterGroups[FilterGroup]Download filter categories
RelatedChannels[Channel]Related channels

Pinning

RelationshipTargetDescription
PinnedDiscussionChannels[DiscussionChannel]Pinned discussions
PinnedWikiPages[WikiPage]Pinned wiki pages

Role Configuration

RelationshipTargetDescription
DefaultChannelRoleChannelRoleDefault user permissions
DefaultModRoleModChannelRoleDefault moderator permissions
ElevatedModRoleModChannelRoleElevated moderator permissions
SuspendedRoleChannelRoleSuspended user permissions
SuspendedModRoleModChannelRoleSuspended moderator permissions

Plugin Configuration

RelationshipTargetDescription
EnabledPlugins[PluginVersion]Enabled plugins
pluginPipelinesJSONChannel plugin pipeline config

ChannelRole Permissions

Permissions for regular users in a channel:

PermissionDescription
canCreateCommentPost comments
canCreateDiscussionCreate discussions
canCreateEventCreate events
canUpdateChannelUpdate channel settings
canUploadFileUpload files
canUpvoteCommentUpvote comments
canUpvoteDiscussionUpvote discussions

ModChannelRole Permissions

Permissions for moderators in a channel:

PermissionDescription
canReportReport content
canGiveFeedbackGive feedback comments
canHideCommentArchive comments
canHideDiscussionArchive discussions
canHideEventArchive events
canEditCommentsEdit others' comments
canEditDiscussionsEdit others' discussions
canEditEventsEdit others' events
canSuspendUserSuspend users
canLockChannelLock the channel
canOpenSupportTicketsOpen support issues
canCloseSupportTicketsClose support issues
canAddModsAdd moderators
canRemoveModsRemove moderators
canAddOwnersAdd owners
canRemoveOwnersRemove owners
canChangeSettingsModify channel settings
canEditWikiEdit wiki pages

FilterGroup Configuration

For download filtering:

type FilterGroup {
id: ID!
key: String! // e.g., "print_size"
displayName: String! // e.g., "Print Size"
order: Int! // Display order
mode: FilterMode! // INCLUDE or EXCLUDE
options: [FilterOption!]!
}

type FilterOption {
id: ID!
value: String! // e.g., "small"
displayName: String! // e.g., "Small (<50mm)"
order: Int!
}

Creating a Channel

Via GraphQL mutation:

mutation CreateChannel($input: ChannelCreateInput!) {
createChannels(input: [$input]) {
channels {
uniqueName
displayName
}
}
}

Variables:

{
"input": {
"uniqueName": "my-channel",
"displayName": "My Channel",
"description": "A channel about things",
"eventsEnabled": true,
"wikiEnabled": true
}
}

Updating Channel Settings

mutation UpdateChannel($uniqueName: String!, $update: ChannelUpdateInput!) {
updateChannels(
where: { uniqueName: $uniqueName }
update: $update
) {
channels {
uniqueName
displayName
}
}
}

Channel Name Requirements

  • Must be unique across the server
  • URL-friendly (lowercase, hyphens allowed)
  • Cannot be changed after creation
  • Avoid special characters
  • Keep it short and memorable

Best Practices

Naming

  • Use descriptive, topic-focused names
  • Keep unique names short: 3d-printing not three-dimensional-printing-community
  • Use display name for full title

Description

  • Explain the channel's purpose
  • List what content is welcome
  • Link to rules or wiki for details

Settings

  • Only enable features you'll use
  • Set appropriate file type restrictions
  • Configure roles for your moderation needs

Organization

  • Use filter groups for download-heavy channels
  • Pin important content
  • Keep related channels linked