{
  "key": "com.devsamurai.plugin.jira.team-board",
  "name": "TeamBoard ProScheduler",
  "description": "TeamBoard ProScheduler - Project Management, Resource Planning & Gantt Chart for Jira.",
  "vendor": {
    "name": "DevSamurai, Inc.",
    "url": "https://www.devsamurai.com/"
  },
  "baseUrl": "https://www.teamboard.atlas.devsamurai.com",
  "authentication": {
    "type": "jwt"
  },
  "lifecycle": {
    "installed": "/installed"
  },
  "scopes": [
    "READ",
    "WRITE",
    "DELETE",
    "PROJECT_ADMIN",
    "ACT_AS_USER",
    "ADMIN",
    "ACCESS_EMAIL_ADDRESSES"
  ],
  "enableLicensing": true,
  "modules": {
    "jiraTimeTrackingProviders": [
      {
        "key": "teamboard-time-tracking-provider",
        "name": {
          "value": "Teamboard time tracking"
        }
      }
    ],
    "dialogs": [
      {
        "url": "/timelog?projectKey={project.key}&issueKey={issue.key}",
        "options": {
          "header": {
            "value": "Timelog Dialog"
          }
        },
        "key": "timelog-dialog"
      },
      {
        "url": "/confirm",
        "options": {
          "header": {
            "value": "Confirm Dialog"
          }
        },
        "key": "confirm-dialog"
      },
      {
        "url": "/fullscreen",
        "options": {
          "header": {
            "value": "Fullscreen Dialog"
          }
        },
        "key": "fullscreen-dialog"
      }
    ],
    "generalPages": [
      {
        "key": "main",
        "url": "/list-boards?tab={ac.tab}",
        "location": "system.top.navigation.bar",
        "icon": {
          "width": 24,
          "height": 24,
          "url": "/resources/tb_icon.png"
        },
        "name": {
          "value": "TeamBoard ProScheduler"
        },
        "conditions": [
          {
            "condition": "user_is_logged_in"
          }
        ]
      },
      {
        "key": "programs",
        "location": "none",
        "url": "/list-boards?programId={ac.programId}&tab={ac.tab}",
        "name": {
          "value": "TeamBoard ProScheduler"
        },
        "conditions": [
          {
            "condition": "user_is_logged_in"
          }
        ]
      },
      {
        "key": "teams",
        "location": "none",
        "url": "/list-boards?teamId={ac.teamId}&tab={ac.tab}",
        "name": {
          "value": "TeamBoard ProScheduler"
        },
        "conditions": [
          {
            "condition": "user_is_logged_in"
          }
        ]
      },
      {
        "key": "api-integration-content",
        "url": "/api-integration",
        "name": {
          "value": "ProScheduler API Integration"
        },
        "conditions": [
          {
            "condition": "user_is_logged_in"
          }
        ],
        "location": "none"
      }
    ],
    "webhooks": [
      {
        "event": "jira:issue_deleted",
        "url": "/webhooks/issue-deleted"
      },
      {
        "event": "worklog_created",
        "url": "/webhooks/worklog-created?issueKey={issue.key}&projectKey={project.key}&projectId={project.id}"
      },
      {
        "event": "worklog_updated",
        "url": "/webhooks/worklog-updated?issueKey={issue.key}&projectKey={project.key}&projectId={project.id}"
      },
      {
        "event": "worklog_deleted",
        "url": "/webhooks/worklog-deleted?issueKey={issue.key}&projectKey={project.key}&projectId={project.id}"
      }
    ],
    "webSections": [
      {
        "key": "menu-section",
        "location": "admin_plugins_menu",
        "name": {
          "value": "TeamBoard ProScheduler"
        }
      }
    ],
    "jiraProjectPages": [
      {
        "key": "team-board",
        "name": {
          "value": "Team Board"
        },
        "iconUrl": "/resources/tb_icon.png",
        "url": "/board?pkey={project.key}&tab={ac.tab}",
        "weight": 1,
        "conditions": [
          {
            "condition": "user_is_logged_in"
          },
          {
            "or": [
              {
                "condition": "jira_expression",
                "params": {
                  "expression": "!app.properties['dsTeamboardArrayProjectDisable'] || !app.properties['dsTeamboardArrayProjectDisable'].includes(`${project.id}`)"
                }
              },
              {
                "condition": "jira_expression",
                "params": {
                  "expression": "app.properties['dsTeamboardIsAllProjectsEnable'] != false"
                }
              }
            ]
          }
        ],
        "layout": {
          "width": "100%",
          "height": "100%"
        }
      }
    ],
    "jiraEntityProperties": [
      {
        "key": "team-board-property",
        "name": {
          "value": "Team board property"
        },
        "entityType": "issue",
        "keyConfigurations": [
          {
            "propertyKey": "dsTeamboardPlan",
            "extractions": [
              {
                "objectName": "startDate",
                "type": "date"
              },
              {
                "objectName": "endDate",
                "type": "date"
              }
            ]
          },
          {
            "propertyKey": "dsTeamboardIsPlannedIssue",
            "extractions": [
              {
                "objectName": "isPlanned",
                "type": "number"
              },
              {
                "objectName": "isMilestone",
                "type": "number"
              },
              {
                "objectName": "isMilestoneMappingJiraDateFields",
                "type": "number"
              },
              {
                "objectName": "isMilestoneNonMappingJiraDateFields",
                "type": "number"
              }
            ]
          },
          {
            "propertyKey": "dsTeamboardAssignedGenericResource",
            "extractions": [
              {
                "objectName": "assignedGenericResource",
                "type": "string"
              }
            ]
          }
        ]
      }
    ],
    "webPanels": [
      {
        "key": "teamboard-issue-right-panel",
        "location": "atl.jira.view.issue.right.context",
        "name": {
          "value": "TeamBoard ProScheduler"
        },
        "url": "/right-panel?projectKey={project.key}&issueKey={issue.key}",
        "target": {
          "type": "dialogmodule",
          "options": {
            "key": "timelog-dialog"
          }
        },
        "conditions": [
          {
            "condition": "user_is_logged_in"
          },
          {
            "or": [
              {
                "condition": "jira_expression",
                "params": {
                  "expression": "!app.properties['dsTeamboardArrayProjectDisable'] || !app.properties['dsTeamboardArrayProjectDisable'].includes(`${project.id}`)"
                }
              },
              {
                "condition": "jira_expression",
                "params": {
                  "expression": "app.properties['dsTeamboardIsAllProjectsEnable'] != false"
                }
              }
            ]
          }
        ]
      },
      {
        "key": "teamboard-issue-left-panel",
        "location": "atl.jira.view.issue.left.context",
        "name": {
          "value": "TeamBoard ProScheduler"
        },
        "layout": {
          "width": "100%",
          "height": "500"
        },
        "url": "/left-panel?projectKey={project.key}&issueKey={issue.key}",
        "conditions": [
          {
            "condition": "user_is_logged_in"
          },
          {
            "or": [
              {
                "condition": "jira_expression",
                "params": {
                  "expression": "!app.properties['dsTeamboardArrayProjectDisable'] || !app.properties['dsTeamboardArrayProjectDisable'].includes(`${project.id}`)"
                }
              },
              {
                "condition": "jira_expression",
                "params": {
                  "expression": "app.properties['dsTeamboardIsAllProjectsEnable'] != false"
                }
              }
            ]
          }
        ]
      }
    ],
    "jiraIssueTabPanels": [
      {
        "key": "teamboard-worklogs",
        "url": "/tb-worklogs?projectKey={project.key}&issueKey={issue.key}",
        "weight": 100,
        "name": {
          "value": "Timelogs"
        },
        "conditions": [
          {
            "condition": "addon_time_tracking_provider_enabled",
            "params": {
              "addonKey": "com.devsamurai.plugin.jira.team-board",
              "moduleKey": "teamboard-time-tracking-provider"
            }
          }
        ]
      },
      {
        "url": "/plan-history",
        "weight": 100,
        "name": {
          "value": "Plan History"
        },
        "key": "plan-history"
      }
    ],
    "adminPages": [
      {
        "url": "/admin-page",
        "name": {
          "value": "Configuration"
        },
        "key": "admin-config",
        "location": "admin_plugins_menu/menu-section"
      }
    ],
    "webItems": [
      {
        "key": "teamboard-api-integration",
        "location": "system.user.options/personal",
        "url": "api-integration-content",
        "name": {
          "value": "ProScheduler API Integration"
        },
        "conditions": [
          {
            "condition": "user_is_logged_in"
          }
        ],
        "context": "page"
      }
    ]
  },
  "apiMigrations": {
    "gdpr": true,
    "context-qsh": true,
    "signed-install": true
  },
  "cloudAppMigration": {
    "migrationWebhookPath": "/migration/webhook"
  }
}