/home/techb158/balavpn.abdallabala.com/src/domain
Edit: /home/techb158/balavpn.abdallabala.com/src/domain/integrations.js (2391B)
const SUPPORTED_PM_PROVIDERS = {
TRELLO: {
label: "Trello",
externalProjectName: "Board",
workItemName: "Card",
mitigationObjectName: "Checklist item",
statusObjectName: "List",
riskFieldName: "Custom field or badge",
evidenceObjectName: "Attachment or comment"
},
JIRA: {
label: "Jira",
externalProjectName: "Project",
workItemName: "Issue",
mitigationObjectName: "Sub-task or linked issue",
statusObjectName: "Workflow status",
riskFieldName: "Custom field",
evidenceObjectName: "Attachment or comment"
},
ASANA: {
label: "Asana",
externalProjectName: "Project",
workItemName: "Task",
mitigationObjectName: "Subtask",
statusObjectName: "Section or custom status field",
riskFieldName: "Custom field",
evidenceObjectName: "Attachment or comment"
},
MICROSOFT_PLANNER: {
label: "Microsoft Planner",
externalProjectName: "Plan",
workItemName: "Task",
mitigationObjectName: "Checklist item",
statusObjectName: "Bucket or progress state",
riskFieldName: "Category, description, or task details",
evidenceObjectName: "Task reference or checklist evidence"
}
};
function listSupportedProviders() {
return Object.entries(SUPPORTED_PM_PROVIDERS).map(([provider, capabilities]) => ({ provider, capabilities }));
}
function riskStatusToExternalStatus(provider, risk) {
if (provider === "TRELLO") {
if (risk.status === "CLOSED") return "Approved for deployment";
if (risk.residualScore >= 50) return "Blocked by risk";
if (risk.status === "IN_MITIGATION") return "In mitigation";
return risk.lifecyclePhase || "Risk register";
}
if (provider === "JIRA") {
if (risk.status === "CLOSED") return "Done";
if (risk.status === "IN_MITIGATION") return "In Progress";
return "To Do";
}
if (provider === "ASANA") {
if (risk.status === "CLOSED") return "Complete";
if (risk.status === "IN_MITIGATION") return "In progress";
return "Open";
}
if (provider === "MICROSOFT_PLANNER") {
if (risk.status === "CLOSED") return "Completed";
if (risk.status === "IN_MITIGATION") return "In progress";
if (risk.residualScore >= 50) return "Blocked bucket";
return "Not started";
}
return risk.status || "Open";
}
module.exports = {
SUPPORTED_PM_PROVIDERS,
listSupportedProviders,
riskStatusToExternalStatus
};