LogoRobo.js

Configuration

Plugin options, Jira settings, and behavior customization.

Configure the plugin in config/plugins/robojs/roadmap.ts (or .mjs). The seed file created during installation includes all options with documentation.

Plugin options

Prop

Type

Full config example

config/plugins/robojs/roadmap.ts
import { JiraProvider } from '@robojs/roadmap'
import type { RoadmapPluginOptions } from '@robojs/roadmap'

const config: RoadmapPluginOptions = {
  provider: new JiraProvider({
    type: 'jira',
    options: {
      url: process.env.JIRA_URL,
      email: process.env.JIRA_EMAIL,
      apiToken: process.env.JIRA_API_TOKEN,
      projectKey: process.env.JIRA_PROJECT_KEY,
      jql: process.env.JIRA_JQL,
      maxResults: 100,
      defaultIssueType: 'Task'
    }
  }),

  threadTitleTemplate: '[{id}] {title}',
  autocompleteCacheTtl: 300000,
  ephemeralCommands: true
}

export default config
config/plugins/robojs/roadmap.js
import { JiraProvider } from '@robojs/roadmap'

const config = {
  provider: new JiraProvider({
    type: 'jira',
    options: {
      url: process.env.JIRA_URL,
      email: process.env.JIRA_EMAIL,
      apiToken: process.env.JIRA_API_TOKEN,
      projectKey: process.env.JIRA_PROJECT_KEY,
      jql: process.env.JIRA_JQL,
      maxResults: 100,
      defaultIssueType: 'Task'
    }
  }),

  threadTitleTemplate: '[{id}] {title}',
  autocompleteCacheTtl: 300000,
  ephemeralCommands: true
}

export default config

Ephemeral commands

By default, /roadmap add and /roadmap edit responses are ephemeral (only visible to the user who ran the command). Set ephemeralCommands: false to make responses visible to the whole channel:

config/plugins/robojs/roadmap.ts
export default {
  ephemeralCommands: false
}
config/plugins/robojs/roadmap.js
export default {
  ephemeralCommands: false
}

This doesn't affect /roadmap setup or /roadmap sync, which always show their responses to the invoking user.

Autocomplete cache

Autocomplete suggestions for columns, labels, and issue types are cached per-guild. The default TTL is 5 minutes. Lower values refresh faster but increase provider API calls:

config/plugins/robojs/roadmap.ts
export default {
  autocompleteCacheTtl: 60000  // Refresh every minute
}
config/plugins/robojs/roadmap.js
export default {
  autocompleteCacheTtl: 60000  // Refresh every minute
}

The /roadmap edit card autocomplete uses a separate 60-second cache.

Public vs private forums

Forums default to private mode where only administrators and moderators can view them. Toggle access through the /roadmap setup panel or programmatically:

import { toggleForumAccess } from '@robojs/roadmap'

// Make roadmap visible to everyone
await toggleForumAccess(guild, 'public')

// Restrict to admins and mods
await toggleForumAccess(guild, 'private')
import { toggleForumAccess } from '@robojs/roadmap'

// Make roadmap visible to everyone
await toggleForumAccess(guild, 'public')

// Restrict to admins and mods
await toggleForumAccess(guild, 'private')

In public mode, everyone can view and comment on threads, but only admins and mods can create new threads.

Guild-specific settings

Each guild has its own persistent settings stored via Flashcore. These include forum channel IDs, access mode, sync history, assignee mappings, column mappings, and more. Access them programmatically:

import { getSettings, updateSettings } from '@robojs/roadmap'

const settings = getSettings(guildId)
updateSettings(guildId, { isPublic: true })
import { getSettings, updateSettings } from '@robojs/roadmap'

const settings = getSettings(guildId)
updateSettings(guildId, { isPublic: true })

See the API reference for the full list of settings functions.

Next steps

On this page