{"name":"SAP Transport Integration for Jira","description":"Manage your SAP transport requests with SAP Transport Integration for Jira, to enable seamless integration with REALTECH SmartChange Transport Management.","key":"com.RTC.plugin.SAPTIJira","baseUrl":"https://sap-transport-integration-for-jira1.azurewebsites.net","vendor":{"name":"REALTECH AG","url":"https://realtech.com"},"enableLicensing":true,"authentication":{"type":"jwt"},"translations":{"paths":{"en-US":"/i18n/en_US.json","de-DE":"/i18n/de_DE.json"}},"lifecycle":{"installed":"/installed","uninstalled":"/uninstalled","enabled":"/enabled","disabled":"/disabled"},"apiMigrations":{"context-qsh":true},"scopes":["READ","write","delete","PROJECT_ADMIN","ADMIN","ACT_AS_USER"],"version":"1.2.6-AC","modules":{"jiraIssueFields":[{"description":{"value":"Number of SAP transports"},"type":"read_only","property":{"path":"numberOfTransports","key":"sap-transport-counter","type":"number"},"name":{"value":"Number of SAP Transports"},"key":"sapTRNo"},{"description":{"value":"Displays if issue has SAP transports"},"type":"read_only","property":{"path":"hasTransports","key":"sap-transport-counter","type":"string"},"name":{"value":"Has SAP Transports"},"key":"hasSapTransports"},{"description":{"value":"SAP waiting approvals"},"type":"read_only","property":{"path":"waitingApprovals","key":"sap-transport-counter","type":"string"},"name":{"value":"SAP waiting approvals"},"key":"waitingApprovals"},{"description":{"value":"SAP transport list"},"type":"read_only","property":{"path":"transportList","key":"sap-transport-counter","type":"string"},"name":{"value":"SAP transport list"},"key":"transportList"}],"configurePage":{"url":"/tmConfig","name":{"value":"Manage TM Controller","i18n":"tm-controller-config.label"},"conditions":[{"condition":"user_is_logged_in"}],"key":"tm-config-page"},"jiraEntityProperties":[{"key":"project-dev-sys-entity-property","entityType":"project","name":{"value":"Project development systems"},"keyConfigurations":[{"propertyKey":"devSystems","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"tmFilter","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"tmCtrlName","extractions":[{"objectName":"content","type":"text"}]}]},{"key":"issue-tr-details-entity-property","entityType":"issue","name":{"value":"Issue TM TR details"},"keyConfigurations":[{"propertyKey":"tmTransports","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"tmEnabled","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"transportUpdated","extractions":[{"objectName":"updated","type":"text"}]},{"propertyKey":"tmFilter_CREATION","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"tmFilter_REASSIGN","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"tmDestination","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"tmProject","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"tmRC","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"levelName","extractions":[{"objectName":"content","type":"text"}]},{"propertyKey":"tmSystem","extractions":[{"objectName":"content","type":"text"}]}]}],"webSections":[{"location":"admin_plugins_menu","weight":1000,"name":{"value":"REALTECH","i18n":"realtech-section.label"},"key":"realtech-app-section"},{"location":"atl.jira.proj.config","name":{"value":"REALTECH","i18n":"realtech-section.label"},"key":"realtech-project-section"}],"adminPages":[{"location":"admin_plugins_menu/realtech-app-section","url":"/tmConfig","name":{"value":"Manage TM Controller","i18n":"tm-controller-config.label"},"conditions":[{"condition":"user_is_logged_in"}],"key":"tm-controller-config"},{"location":"admin_plugins_menu/realtech-app-section","url":"/tmLogs","name":{"value":"Logs","i18n":"tm-controller-log.label"},"conditions":[{"condition":"user_is_logged_in"}],"key":"tm-controller-log"}],"jiraIssueTabPanels":[{"url":"/smartChangeHistory?issue={issue.id}&issueKey={issue.key}","weight":100,"name":{"value":"SmartChange History","i18n":"smart-change-history.label"},"conditions":[{"condition":"user_is_logged_in"}],"key":"smart-change-history"}],"jiraProjectAdminTabPanels":[{"location":"realtech-project-section","url":"/tmProjectSettings?projectId={project.id}","weight":100,"name":{"value":"REALTECH Settings","i18n":"tm-project-settings.label"},"conditions":[{"condition":"user_is_logged_in"},{"condition":"jira_expression","params":{"expression":"project.properties['tmCtrlHasAccess'] == null || project.properties['tmCtrlHasAccess'] == true"}}],"key":"tm-project-settings"},{"location":"realtech-project-section","url":"/tmProjectFeatures?projectId={project.id}","weight":102,"name":{"value":"REALTECH Features","i18n":"tm-project-features-title"},"conditions":[{"condition":"user_is_logged_in"},{"condition":"jira_expression","params":{"expression":"project.properties['tmCtrlHasAccess'] == null || project.properties['tmCtrlHasAccess'] == true"}}],"key":"tm-project-features"}],"webhooks":[{"event":"jira:issue_created","url":"/tmIssueFilterUpdate","excludeBody":false},{"event":"jira:issue_updated","url":"/tmIssueFilterUpdate","excludeBody":false},{"event":"issue_property_set","url":"/tmIssueProperties?issue={issue.id}&issueKey={issue.key}&project={project.id}","excludeBody":false},{"event":"issue_property_deleted","url":"/tmIssueProperties?issue={issue.id}&issueKey={issue.key}&project={project.id}","excludeBody":false},{"event":"app-data-uploaded","url":"/migrateAppData","excludeBody":false}],"jiraWorkflowValidators":[{"key":"tm-SAP-loggedIn","name":{"value":"SmartChange - User is logged into the SAP system (DEPRECATED)","i18n":"sap-tm-validator-SAP-loggedIn.name"},"description":{"value":"Validates if the user is logged into the SAP system.","i18n":"sap-tm-validator-SAP-loggedIn"},"expression":"!issue.properties.tmEnabled || issue.properties.tmEnabled.content != true || (user.properties['sapTMEnabled_' + project.id].content && user.properties['sapTMEnabled_' + project.id].content != '')","errorMessage":{"expression":"config['error_msg'] ? config['error_msg'] : 'The user is not logged into the SAP system!'"},"view":{"url":"/viewSAPLoggedInValidator?id={validator.id}&config={validator.config}"},"edit":{"url":"/editSAPLoggedInValidator?id={validator.id}&config={validator.config}"},"create":{"url":"/createSAPLoggedInValidator"}},{"key":"tm-SAP-level-status","name":{"value":"SmartChange - TM transport level and status (DEPRECATED)","i18n":"sap-tm-validator-TM-level-status.name"},"description":{"value":"Validates if TM transport is on a level or status","i18n":"sap-tm-validator-TM-level-status"},"expression":"!issue.properties.tmEnabled || issue.properties.tmEnabled.content != true || !issue.properties.keys().filter(key => key.includes('tmDetails') && (!issue.properties[key]['IMPORTS'].length || (issue.properties[key]['TM_LEVEL'].toLowerCase() != config.level_name.toLowerCase() ? issue.properties[key]['IMPORTS'].indexOf(issue.properties[key]['IMPORTS'].filter(imp => imp['TM_LEVEL'].toLowerCase() == issue.properties[key]['TM_LEVEL'].toLowerCase())[0]) < issue.properties[key]['IMPORTS'].indexOf(issue.properties[key]['IMPORTS'].filter(imp => imp['TM_LEVEL'].toLowerCase() == config.level_name.toLowerCase())[0]) : (config.status && config.status.id ? issue.properties[key]['TM_STATUS'].toLowerCase() != config.status.id.toLowerCase() : false)))).length","errorMessage":{"expression":"config['status'] && config['status'].id ? 'Transport is not on level ' + config['level_name'] + ' or status ' + config['status']['name'] : 'Transport is not on level ' +  config['level_name']"},"view":{"url":"/viewSAPLevelStatusValidator?id={validator.id}&config={validator.config}"},"edit":{"url":"/editSAPLevelStatusValidator?id={validator.id}&config={validator.config}"},"create":{"url":"/createSAPLevelStatusValidator"}}],"jiraWorkflowPostFunctions":[{"key":"saptr-approval-fc","name":{"value":"SmartChange - SAP transport approval (beta)","i18n":"saptr-approval.name"},"description":{"value":"Approve or revoke SAP transport requests.","i18n":"saptr-approval.description"},"create":{"url":"/createAppFunction"},"edit":{"url":"/editAppFunction?config={postFunction.config}"},"view":{"url":"/viewAppFunction?config={postFunction.config}"},"triggered":{"url":"/triggeredAppFunction?config={postFunction.config}"}}],"jiraJqlFunctions":[{"name":"requestsImportedToLevel","arguments":[{"name":"levelName","required":true},{"name":"subquery","required":false},{"name":"imported","required":false}],"types":["issue"],"operators":["in","not_in"],"url":"/requestsImportedToLevel","key":"requestsImportedToLevel"},{"name":"requestsImportedToSystem","arguments":[{"name":"levelName","required":true},{"name":"subquery","required":false},{"name":"imported","required":false}],"types":["issue"],"operators":["in","not_in"],"url":"/requestsImportedToSystem","key":"requestsImportedToSystem"}]}}