RFCs are a way for Atlassian to share what we’re working on with our valued developer community.
It’s a document for building shared understanding of a topic. It expresses a technical solution, but can also communicate how it should be built or even document standards. The most important aspect of an RFC is that a written specification facilitates feedback and drives consensus. It is not a tool for approving or committing to ideas, but more so a collaborative practice to shape an idea and to find serious flaws early.
Please respect our community guidelines: keep it welcoming and safe by commenting on the idea not the people (especially the author); keep it tidy by keeping on topic; empower the community by keeping comments constructive. Thanks!
- Publish: October 3, 2024
- Discuss: October 18, 2024
- Resolve: November 1, 2024
Summary of Project:
The command palette lets you seamlessly work in Jira with just your keyboard. Use the command palette to find work, perform actions on issues, and navigate to key places in Jira.
This project aims to allow Forge Apps to extend the command palette with additional commands.
Problem
Jira users expect to be able to interact with Apps using the command palette and shortcuts. However, this is not currently possible. Connect Apps can register keyboard shortcuts but also do not have access to the command palette.
Proposed Solution
Milestone 1: Minimal Command Palette UI integration
All App commands are listed inside of a new command palette section for Apps. These commands can specify an Icon and a shortcut key combination.
When selected, these actions can open a dialog or send the user to a new page.
Here’s an example partial manifest showing what this might look like:
Manifest.yml
modules:
jira:globalPage:
- key: example-global-page
resource: main-resource
render: native
title: Example Global Page
jira:command:
- key: example-go-to-page-command
name: 'Example go to page command'
shortcut: 'g m'
icon: 'arrow-right'
keywords:
- 'go'
- 'to'
- 'page'
target:
page: example-global-page
- key: example-dialog-command
name: 'Example open dialog command'
shortcut: 'o d'
icon: 'activity'
keywords:
- 'open'
- 'dialog'
target:
function: example-dialog-function
function:
- key: main-resource
handler: index.mainResource
- key: example-dialog-function
handler: index.mainDialog`
Milestone 2: custom Command Palette sections and command context
Sections will allow the grouping of commands that have something in common to allow them to be found more easily. Commands can be added to existing sections such as “Quick Actions” or “Site Navigation” or Apps can declare entirely new sections.
Command context will allow commands to appear only under certain conditions. For example actions to do with issues would only be available in the context issue
.
modules:
jira:commmandSection:
- key: 'time-tracking-commands'
name: 'Time Tracking Section Heading'
jira:command:
- key: example-go-to-page-command
name: 'Example go to page command'
icon: 'bell'
section:
target: 'QUICK_ACCESS'
context: 'issue'
- key: example-dialog-command
name: 'Example open dialog command'
icon: 'arrow-right'
section:
target: time-tracking-commands
context: 'global'
Asks
We appreciate your engagement and look for feedback on this RFC that will help shape the command palette offering.
Specifically, the Forge team would love to get some insights on:
- What use-cases for your apps that this offering would enable?
- How many commands would your app look to implement?
- Which icons from the icon explorer would suit your command best?
- What additional features would you expect the Command Palette to support?