{
  "key": "com.soldevelo.apps.test_management",
  "baseUrl": "https://apps-qality.soldevelo.com",
  "name": "QAlity - Test Management for Jira",
  "description": "QAlity. Current version is 1.2.66",
  "enableLicensing": false,
  "vendor": {
    "name": "SolDevelo",
    "url": "http://www.soldevelo.com"
  },
  "authentication": {
    "type": "jwt"
  },
  "lifecycle": {
    "installed": "/installed",
    "uninstalled": "/uninstalled"
  },
  "scopes": ["READ", "WRITE", "ADMIN", "DELETE", "ACT_AS_USER"],
  "translations": {
    "paths": {
      "en-US": "/i18n/atlaskit/en_US.json"
    }
  },
  "modules": {
    "jiraProjectAdminTabPanels": [
      {
        "location": "projectgroup1",
        "url": "/project-settings?projectKey={project.key}",
        "weight": 100,
        "name": {
          "value": "QAlity - settings"
        },
        "key": "project-admin-panel"
      }
    ],
    "webSections": [
      {
        "location": "admin_plugins_menu",
        "name": {
          "value": "QAlity"
        },
        "key": "qality-settings-section"
      },
      {
        "key": "qality-repository-section",
        "location": "qality-sub-menu-opener",
        "name": {
          "value": "Repository"
        },
        "weight": 2
      },
      {
        "key": "qality-reports-section",
        "location": "qality-sub-menu-opener",
        "name": {
          "value": "Reports"
        },
        "weight": 3
      },
      {
        "key": "qality-other-section",
        "location": "qality-sub-menu-opener",
        "name": {
          "value": "Other"
        },
        "weight": 999
      },
      {
        "key": "qality-project-repository-section",
        "location": "qality-project-sub-menu-opener",
        "name": {
          "value": "Repository"
        },
        "weight": 2
      },
      {
        "key": "qality-project-reports-section",
        "location": "qality-project-sub-menu-opener",
        "name": {
          "value": "Reports"
        },
        "weight": 3
      },
      {
        "key": "qality-project-other-section",
        "location": "qality-project-sub-menu-opener",
        "name": {
          "value": "Other"
        },
        "weight": 999
      },
      {
        "name": {
          "value": " "
        },
        "weight": 1,
        "location": "qality-sub-menu-opener",
        "key": "topnav-head-section"
      },
      {
        "name": {
          "value": " "
        },
        "weight": 1,
        "location": "qality-project-sub-menu-opener",
        "key": "project-topnav-head-section"
      }
    ],
    "webItems": [
      {
        "key": "qality-sub-menu-opener",
        "location": "system.top.navigation.bar",
        "name": {
          "value": "QAlity"
        },
        "icon": {
          "width": 20,
          "height": 20,
          "url": "/images/qality-icon.png"
        },
        "url": "/plugins/servlet/ac/com.soldevelo.apps.test_management/welcome",
        "context": "product"
      },
      {
        "key": "qality-project-sub-menu-opener",
        "location": "jira.project.sidebar.plugins.navigation",
        "name": {
          "value": "QAlity"
        },
        "icon": {
          "width": 20,
          "height": 20,
          "url": "/images/qality-icon.svg"
        },
        "url": "/test-cycles",
        "context": "product",
        "conditions": [
          {
            "condition": "jira_expression",
            "params": {
              "expression": "!app.properties.keys().some(property => property.includes('soldevelo-qality-settings')) || !app.properties.keys().some(property => property.includes('soldevelo-qality-settings') && app.properties[property][project.key]) || app.properties.keys().some(property => property.includes('soldevelo-qality-settings') && app.properties[property][project.key] && (app.properties[property][project.key].isPluginEnabled == null ? true : app.properties[property][project.key].isPluginEnabled))"
            }
          }
        ]
      },
      {
        "key": "qality-repository-test-cases",
        "location": "qality-sub-menu-opener/qality-repository-section",
        "name": {
          "value": "Test cases"
        },
        "url": "/plugins/servlet/ac/com.soldevelo.apps.test_management/repository-test-cases",
        "context": "product",
        "weight": 1
      },
      {
        "key": "qality-test-cycles",
        "location": "qality-sub-menu-opener/qality-repository-section",
        "name": {
          "value": "Test cycles"
        },
        "url": "/plugins/servlet/ac/com.soldevelo.apps.test_management/test-cycles?project.key={project.key}&project.id={project.id}",
        "context": "product",
        "weight": 2
      },
      {
        "key": "qality-report-test-executions",
        "location": "qality-sub-menu-opener/qality-reports-section",
        "name": {
          "value": "Test execution report"
        },
        "url": "/test-execution-report?reportName=TestExecutionReport",
        "context": "page",
        "weight": 1
      },
      {
        "key": "qality-report-traceability",
        "location": "qality-sub-menu-opener/qality-reports-section",
        "name": {
          "value": "Traceability report"
        },
        "url": "/traceability-report?reportName=TraceabilityReport",
        "context": "page",
        "weight": 2
      },
      {
        "key": "qality-documentation",
        "location": "qality-sub-menu-opener/qality-other-section",
        "name": {
          "value": "Documentation"
        },
        "url": "https://soldevelo.atlassian.net/wiki/spaces/QS/overview",
        "weight": 1
      },
      {
        "key": "qality-support",
        "location": "qality-sub-menu-opener/qality-other-section",
        "name": {
          "value": "Contact support"
        },
        "url": "https://soldevelo.atlassian.net/servicedesk/customer/portal/6",
        "weight": 2
      },
      {
        "key": "qality-check-qality-plus",
        "location": "qality-sub-menu-opener/qality-other-section",
        "name": {
          "value": "Check QAlity Plus"
        },
        "url": "https://soldevelo.atlassian.net/wiki/spaces/QS/pages/2444165210/QAlity+vs+QAlity+Plus",
        "weight": 3
      },
      {
        "key": "qality-welcome-page",
        "location": "qality-sub-menu-opener/topnav-head-section",
        "name": {
          "value": "Dashboard"
        },
        "weight": 1,
        "url": "/plugins/servlet/ac/com.soldevelo.apps.test_management/welcome",
        "context": "product"
      },
      {
        "key": "qality-project-repository-test-cases",
        "location": "qality-project-sub-menu-opener/qality-project-repository-section",
        "name": {
          "value": "Test cases"
        },
        "url": "/repository-test-cases",
        "context": "page",
        "weight": 1
      },
      {
        "key": "qality-project-test-cycles",
        "location": "qality-project-sub-menu-opener/qality-project-repository-section",
        "name": {
          "value": "Test cycles"
        },
        "url": "/test-cycles",
        "context": "page",
        "weight": 2
      },
      {
        "key": "qality-project-report-test-executions",
        "location": "qality-project-sub-menu-opener/qality-project-reports-section",
        "name": {
          "value": "Test execution report"
        },
        "url": "/test-execution-report?reportName=TestExecutionReport",
        "context": "page",
        "weight": 1
      },
      {
        "key": "qality-project-report-traceability",
        "location": "qality-project-sub-menu-opener/qality-project-reports-section",
        "name": {
          "value": "Traceability report"
        },
        "url": "/traceability-report?reportName=TraceabilityReport",
        "context": "page",
        "weight": 2
      },
      {
        "key": "qality-project-documentation",
        "location": "qality-project-sub-menu-opener/qality-project-other-section",
        "name": {
          "value": "Documentation"
        },
        "url": "https://soldevelo.atlassian.net/wiki/spaces/QS/overview",
        "weight": 1
      },
      {
        "key": "qality-project-support",
        "location": "qality-project-sub-menu-opener/qality-project-other-section",
        "name": {
          "value": "Contact support"
        },
        "url": "https://soldevelo.atlassian.net/servicedesk/customer/portal/6",
        "weight": 2
      },
      {
        "key": "qality-project-check-qality-plus",
        "location": "qality-project-sub-menu-opener/qality-project-other-section",
        "name": {
          "value": "Check QAlity Plus"
        },
        "url": "https://soldevelo.atlassian.net/wiki/spaces/QS/pages/2444165210/QAlity+vs+QAlity+Plus",
        "weight": 3
      },
      {
        "key": "qality-project-welcome-page",
        "location": "qality-project-sub-menu-opener/project-topnav-head-section",
        "name": {
          "value": "Dashboard"
        },
        "weight": 1,
        "url": "/welcome-page",
        "context": "page"
      }
    ],
    "webPanels": [
      {
        "key": "create-test-cycle-dialog",
        "location": "none",
        "name": {
          "value": "Dialog"
        },
        "url": "/create-test-cycle-dialog"
      },
      {
        "key": "delete-test-step-dialog",
        "location": "none",
        "name": {
          "value": "Dialog"
        },
        "url": "/delete-test-step-dialog"
      },
      {
        "key": "add-attachment-dialog",
        "location": "none",
        "name": {
          "value": "Dialog"
        },
        "url": "/add-attachment-dialog"
      },
      {
        "key": "add-to-test-cycle-dialog",
        "location": "none",
        "name": {
          "value": "Dialog"
        },
        "url": "/add-to-test-cycle-dialog"
      },
      {
        "key": "test-case-execution-dialog",
        "location": "none",
        "name": {
          "value": "Dialog"
        },
        "url": "/test-case-execution-dialog"
      },
      {
        "key": "qality-project-repository-test-cases-panel",
        "url": "/repository-test-cases",
        "location": "com.soldevelo.apps.test_management__qality-project-repository-test-cases-panel",
        "name": {
          "value": "Test Cases Repository Panel"
        }
      },
      {
        "key": "qality-project-test-cycles-panel",
        "url": "/test-cycles",
        "location": "com.soldevelo.apps.test_management__qality-project-test-cycles-panel",
        "name": {
          "value": "My Web Panel"
        }
      },
      {
        "key": "qality-project-welcome-panel",
        "url": "/welcome",
        "location": "com.soldevelo.apps.test_management__qality-project-welcome-panel",
        "name": {
          "value": "Welcome Panel"
        }
      }
    ],
    "jiraIssueContents": [
      {
        "key": "soldevelo-qality-content",
        "name": {
          "value": "QAlity - Test Management"
        },
        "icon": {
          "width": 20,
          "height": 20,
          "url": "/images/qality-icon.svg"
        },
        "target": {
          "type": "web_panel",
          "url": "/qality-issue-view?issueKey={issue.key}"
        },
        "tooltip": {
          "value": "QAlity"
        },
        "conditions": [
          {
            "condition": "jira_expression",
            "invert": true,
            "params": {
              "expression": "issue.issueType.name.includes('Test case') || issue.issueType.name.includes('QAlity Test')"
            }
          },
          {
            "condition": "jira_expression",
            "params": {
              "expression": "!app.properties.keys().some(property => property.includes('soldevelo-qality-settings')) || !app.properties.keys().some(property => property.includes('soldevelo-qality-settings') && app.properties[property][project.key]) || app.properties.keys().some(property => property.includes('soldevelo-qality-settings') && app.properties[property][project.key] && app.properties[property][project.key].isQalityEnabled && (app.properties[property][project.key].isPluginEnabled == null ? true : app.properties[property][project.key].isPluginEnabled))"
            }
          }
        ]
      },
      {
        "key": "soldevelo-qality-content-test-steps",
        "name": {
          "value": "QAlity - Test Management"
        },
        "icon": {
          "width": 20,
          "height": 20,
          "url": "/images/qality-icon.svg"
        },
        "target": {
          "type": "web_panel",
          "url": "/test-steps-issue-view?issueKey={issue.key}"
        },
        "tooltip": {
          "value": "Show QAlity test"
        },
        "conditions": [
          {
            "condition": "jira_expression",
            "params": {
              "expression": "issue.issueType.name.includes('Test case') || issue.issueType.name.includes('QAlity Test')"
            }
          },
          {
            "condition": "jira_expression",
            "params": {
              "expression": "!app.properties.keys().some(property => property.includes('soldevelo-qality-settings')) || !app.properties.keys().some(property => property.includes('soldevelo-qality-settings') && app.properties[property][project.key]) || app.properties.keys().some(property => property.includes('soldevelo-qality-settings') && app.properties[property][project.key] && (app.properties[property][project.key].isPluginEnabled == null ? true : app.properties[property][project.key].isPluginEnabled))"
            }
          }
        ]
      }
    ],
    "webhooks": [
      {
        "event": "app_access_to_objects_blocked",
        "url": "/projectAppAccessChange",
        "excludeBody": false
      },
      {
        "event": "jira:issue_created",
        "url": "/testCaseCreatedFree",
        "excludeBody": false,
        "filter": "issuetype='QAlity Test'",
        "propertyKeys": [
          "soldevelo-testcase-automation-className"
        ]
      },
      {
        "event": "connect_addon_enabled",
        "url": "/addon/enabled"
      },
      {
        "event": "project_created",
        "url": "/projectCreated",
        "excludeBody": false
      },
      {
        "event": "project_updated",
        "url": "/projectUpdated",
        "excludeBody": false
      },
      {
        "event": "jira:issue_deleted",
        "url": "/issueDeleted",
        "excludeBody": false,
        "filter": "issuetype='QAlity Test'"
      },
      {
        "event": "jira:issue_updated",
        "url": "/testCaseUpdated",
        "excludeBody": false,
        "filter": "issuetype='QAlity Test'"
      }
    ],
    "configurePage": {
      "key": "configure-page",
      "name": {
        "value": "QAlity Settings"
      },
      "url": "/settings"
    },
    "generalPages": [
      {
        "key": "test-case-execution",
        "location": "none",
        "name": {
          "value": "Test Case Execution"
        },
        "url": "/test-case-execution"
      },
      {
        "key": "test-case-execution-history",
        "location": "none",
        "name": {
          "value": "Test Case Execution History"
        },
        "url": "/test-case-execution-history"
      },
      {
        "key": "repository-test-cases",
        "location": "none",
        "name": {
          "value": "Test Cases Repository"
        },
        "url": "/repository-test-cases"
      },
      {
        "key": "test-cycles",
        "location": "none",
        "name": {
          "value": "Test Cycles Overview"
        },
        "url": "/test-cycles"
      },
      {
        "key": "test-cycle-details",
        "location": "none",
        "name": {
          "value": "Test Cycle Overview"
        },
        "url": "/test-cycle-details"
      },
      {
        "key": "welcome",
        "location": "none",
        "name": {
          "value": "QAlity Dashboard"
        },
        "url": "/welcome"
      },
      {
        "key": "settings-general-page",
        "url": "/settings",
        "name": {
          "value": "QAlity Settings"
        },
        "location": "admin_plugins_menu/qality-settings-section"
      }
    ],
    "jiraReports": [
      {
        "url": "/reports?reportName=TestExecutionReport&projectId={project.id}",
        "description": {
          "value": "A report that summarizes tests that were executed in the selected period"
        },
        "thumbnailUrl": "/images/TestExecutionCover.png",
        "name": {
          "value": "Test Execution Report"
        },
        "key": "test-execution-report"
      },
      {
        "url": "/traceability-report",
        "description": {
          "value": "This report summarizes bugs associated with test cases and their executions in the selected period."
        },
        "thumbnailUrl": "/images/TraceabilityReportCover.png",
        "name": {
          "value": "Traceability Report"
        },
        "key": "traceability-report"
      }
    ],
    "postInstallPage": {
      "url": "/welcome",
      "name": {
        "value": "QAlity Dashboard"
      },
      "key": "welcome-page"
    }
  },
  "apiMigrations": {
    "context-qsh": true
  }
}
