1. Fidel Castro Armario
  2. JIRA Workflow Toolbox

Wiki

Clone wiki

JIRA Workflow Toolbox / others / Project Properties

What are Project Properties?

Project Properties is a simple mechanism implemented by JIRA Workflow Toolbox, to include machine readable key-value pairs into projects description, using format {property=value}, thereby operating as an effective way for adding metadata to your JIRA projects.

Examples of Project Properties:

The following screenshot shows JIRA project edition dialog with 5 examples of project properties:

  • codeReview: used to enforce or to make optional certain part of the workflow related with code reviews.
  • maxResponseTime: time elapsed since issue notification to first response. Can be used to set alarms with JQL filters and suscriptions, to increase priority when deadline approaches, etc.
  • technology: project technology. Can be used in auto-composed texts, workflow customization, JQL searches, etc.
  • database: database provider. Can be used in auto-composed texts, workflow customization, JQL searches, etc.
  • stageURL: URL of stage environment. Can be used to compose an auto-comment to inform the user where to test the solution prior to release.
    ./others/project-properties/project-properties-5.png

Purpose of Project Properties

1. Customizing workflow behavior depending on projects

Project Properties are initially aimed to customize your workflows behavior depending on project features (metadata added to projects in the form of Project Properties), this way highly improving workflow reusability.

For example, you can use project properties to:

  • Enable/disable transitions depending on project properties values.
  • Set project customized values for timelines (dates), costs, weights, or any other date or numerical values used in your workflows. Can also be used for implementing non-numerical or non-date attributes.
  • Set priorities among projects, that maybe inherited to issues, for example by using priority adjustment tables.
  • Provide project related metadata that may be used by the workflow post-functions to compose project customized dynamic text, setting custom or virtual fields with project customized values, ..., e.g., customer information, servers URLs, ...

Tools for customizing workflows

The tools available for customizing workflows are:

  • Conditions:
    • Check project property: compare the value of a project property with a literal value, a custom or virtual field value, or a composed text, disabling a transition if comparison fails.

  • Validators:
    • Check project property: compare the value of a project property with a literal value, a custom or virtual field value, or a composed text, showing the user a custom message if comparison fails.

  • Post-functions:
    • Set/create project property: updates the value of a project property, or creates it in case it doesn't exist. Works on current issue's project, or on any project its key can be provided.
    • Read a project property: read the value of a project property and store it's value into a custom or virtual field. Works on current issue's project, or on any project its key can be provided.

2. Enhancing JQL search capability by project attributes

You can ask for the value of project properties in your JQL queries, by using 3 JQL functions provided by JIRA Workflow Toolbox:

You can use it, among other things, to extend the JIRA native Project Category concept, by creating many other project classifications by using Project Properties.

3. Setting default assignee for a Project Role

One of the two ways available in post-function "Assign to Project Role" for setting default assignee for a project role uses Project Properties with certain format.

Example:

Setting user "feynman" as default assignee for project role "Developers", with internal identifier 10100. As you can be seen in the picture, you can use the name of the project role, or the internal identifier as project property name. The second option has de advantage that it's immune to project role renaming.

./amazing/assign-by-role/assign-by-project-role-1-2.png

Usage Examples

Updated