@kartverket/backstage-plugin-risk-scorecard 8.3.2 → 8.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/riskMatrix/RiskMatrix.esm.js +48 -35
- package/dist/components/riskMatrix/RiskMatrix.esm.js.map +1 -1
- package/dist/components/riskMatrix/RiskMatrix.module.css.esm.js +2 -2
- package/dist/components/riskMatrix/RiskMatrixScenarioCount.esm.js +7 -9
- package/dist/components/riskMatrix/RiskMatrixScenarioCount.esm.js.map +1 -1
- package/dist/components/riskMatrix/RiskMatrixSquare.esm.js +1 -1
- package/dist/components/riskMatrix/RiskMatrixSquare.esm.js.map +1 -1
- package/dist/hooks/usePredefinedScenarios.esm.js +1 -15
- package/dist/hooks/usePredefinedScenarios.esm.js.map +1 -1
- package/dist/urls/backend.esm.js +1 -20
- package/dist/urls/backend.esm.js.map +1 -1
- package/dist/utils/featureFlags.esm.js +10 -10
- package/dist/utils/featureFlags.esm.js.map +1 -1
- package/dist/utils/hooks.esm.js +11 -19
- package/dist/utils/hooks.esm.js.map +1 -1
- package/dist/utils/risk.esm.js +13 -1
- package/dist/utils/risk.esm.js.map +1 -1
- package/dist/utils/translations.esm.js +3 -1
- package/dist/utils/translations.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,16 +6,19 @@ import { riskMatrix } from '../../utils/constants.esm.js';
|
|
|
6
6
|
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
7
7
|
import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
|
|
8
8
|
import { RiskMatrixTabs } from './utils.esm.js';
|
|
9
|
-
import { Card, CardHeader, Text, CardBody, Box } from '@backstage/ui';
|
|
9
|
+
import { Card, CardHeader, Text, CardBody, Box, Flex } from '@backstage/ui';
|
|
10
10
|
import { RiskMatrixSquare } from './RiskMatrixSquare.esm.js';
|
|
11
11
|
import { CurrentRisk } from './CurrentRisk.esm.js';
|
|
12
|
+
import { useShowCurrentMatrixFeatureFlag } from '../../utils/featureFlags.esm.js';
|
|
12
13
|
import styles from './RiskMatrix.module.css.esm.js';
|
|
13
14
|
|
|
14
15
|
function RiskMatrix({
|
|
15
16
|
riScWithMetadata
|
|
16
17
|
}) {
|
|
17
18
|
const { t } = useTranslationRef(pluginRiScTranslationRef);
|
|
19
|
+
const showCurrentMatrix = useShowCurrentMatrixFeatureFlag();
|
|
18
20
|
const [tab, setTab] = useState(RiskMatrixTabs.initialRisk);
|
|
21
|
+
const description = t("riskMatrix.currentRisk.matrixDescription");
|
|
19
22
|
return /* @__PURE__ */ jsxs(Card, { className: styles.card, children: [
|
|
20
23
|
/* @__PURE__ */ jsx(CardHeader, { children: /* @__PURE__ */ jsx(Text, { variant: "title-small", weight: "bold", children: t("riskMatrix.title") }) }),
|
|
21
24
|
/* @__PURE__ */ jsxs(CardBody, { children: [
|
|
@@ -29,45 +32,55 @@ function RiskMatrix({
|
|
|
29
32
|
children: /* @__PURE__ */ jsx(AggregatedCost, { riSc: riScWithMetadata.content, riskType: tab })
|
|
30
33
|
}
|
|
31
34
|
),
|
|
32
|
-
tab
|
|
33
|
-
/* @__PURE__ */
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
(showCurrentMatrix || tab !== RiskMatrixTabs.currentRisk) && /* @__PURE__ */ jsxs(Box, { className: styles.gridWrapper, children: [
|
|
36
|
+
/* @__PURE__ */ jsxs(Box, { className: styles.grid, children: [
|
|
37
|
+
/* @__PURE__ */ jsx(Box, { className: styles.konsekvens, children: /* @__PURE__ */ jsx(
|
|
38
|
+
Text,
|
|
39
|
+
{
|
|
40
|
+
variant: "title-x-small",
|
|
41
|
+
weight: "bold",
|
|
42
|
+
className: styles.centered,
|
|
43
|
+
children: t("dictionary.consequence")
|
|
44
|
+
}
|
|
45
|
+
) }),
|
|
46
|
+
riskMatrix.map((row, rowIndex) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
47
|
+
/* @__PURE__ */ jsx(Box, { className: styles.centered, children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: 5 - rowIndex }) }),
|
|
48
|
+
row.map((_, colIndex) => /* @__PURE__ */ jsx(
|
|
49
|
+
RiskMatrixSquare,
|
|
50
|
+
{
|
|
51
|
+
size: "grid",
|
|
52
|
+
consequence: 4 - rowIndex,
|
|
53
|
+
probability: colIndex,
|
|
54
|
+
riScCountObject: {
|
|
55
|
+
riskTab: tab,
|
|
56
|
+
riSc: riScWithMetadata
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
`S:${colIndex} K:${4 - rowIndex}`
|
|
60
|
+
))
|
|
61
|
+
] }, rowIndex)),
|
|
62
|
+
/* @__PURE__ */ jsx(Box, { className: styles.centered, children: null }),
|
|
63
|
+
/* @__PURE__ */ jsx(Box, { className: styles.centered, children: null }),
|
|
64
|
+
riskMatrix.map((_, col) => /* @__PURE__ */ jsx(Box, { className: styles.centered, children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: col + 1 }) }, col)),
|
|
65
|
+
/* @__PURE__ */ jsx(Box, { className: styles.sannsynlighet, children: /* @__PURE__ */ jsx(
|
|
66
|
+
Text,
|
|
46
67
|
{
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
`S:${colIndex} K:${4 - rowIndex}`
|
|
56
|
-
))
|
|
57
|
-
] }, rowIndex)),
|
|
58
|
-
/* @__PURE__ */ jsx(Box, { className: styles.centered, children: null }),
|
|
59
|
-
/* @__PURE__ */ jsx(Box, { className: styles.centered, children: null }),
|
|
60
|
-
riskMatrix.map((_, col) => /* @__PURE__ */ jsx(Box, { className: styles.centered, children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: col + 1 }) }, col)),
|
|
61
|
-
/* @__PURE__ */ jsx(Box, { className: styles.sannsynlighet, children: /* @__PURE__ */ jsx(
|
|
68
|
+
weight: "bold",
|
|
69
|
+
variant: "title-x-small",
|
|
70
|
+
className: styles.centered,
|
|
71
|
+
children: t("dictionary.probability")
|
|
72
|
+
}
|
|
73
|
+
) })
|
|
74
|
+
] }),
|
|
75
|
+
tab === RiskMatrixTabs.currentRisk && /* @__PURE__ */ jsx(Flex, { children: /* @__PURE__ */ jsx(
|
|
62
76
|
Text,
|
|
63
77
|
{
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
className: styles.centered,
|
|
67
|
-
children: t("dictionary.probability")
|
|
78
|
+
variant: "body-large",
|
|
79
|
+
dangerouslySetInnerHTML: { __html: description }
|
|
68
80
|
}
|
|
69
81
|
) })
|
|
70
|
-
] })
|
|
82
|
+
] }),
|
|
83
|
+
tab === RiskMatrixTabs.currentRisk && /* @__PURE__ */ jsx(Box, { className: styles.currentRiskReduction, children: /* @__PURE__ */ jsx(CurrentRisk, { risc: riScWithMetadata }) })
|
|
71
84
|
] })
|
|
72
85
|
] });
|
|
73
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskMatrix.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrix.tsx"],"sourcesContent":["import { Fragment, useState } from 'react';\nimport { AggregatedCost } from './AggregatedCost';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { MatrixTabs } from './Tabs';\nimport { riskMatrix } from '../../utils/constants';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiskMatrixTabs } from './utils';\nimport { Card, CardBody, CardHeader, Text, Box } from '@backstage/ui';\nimport { RiskMatrixSquare } from './RiskMatrixSquare.tsx';\nimport { CurrentRisk } from './CurrentRisk.tsx';\n\nimport styles from './RiskMatrix.module.css';\nexport function RiskMatrix({\n riScWithMetadata,\n}: {\n riScWithMetadata: RiScWithMetadata;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [tab, setTab] = useState<RiskMatrixTabs>(RiskMatrixTabs.initialRisk);\n\n return (\n <Card className={styles.card}>\n <CardHeader>\n <Text variant=\"title-small\" weight=\"bold\">\n {t('riskMatrix.title')}\n </Text>\n </CardHeader>\n <CardBody>\n <MatrixTabs setTab={setTab} currentTab={tab} />\n {riScWithMetadata.content.scenarios.length > 0 && (\n <Box\n style={{\n marginTop: '18px',\n }}\n >\n <AggregatedCost riSc={riScWithMetadata.content} riskType={tab} />\n </Box>\n )}\n
|
|
1
|
+
{"version":3,"file":"RiskMatrix.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrix.tsx"],"sourcesContent":["import { Fragment, useState } from 'react';\nimport { AggregatedCost } from './AggregatedCost';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { MatrixTabs } from './Tabs';\nimport { riskMatrix } from '../../utils/constants';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiskMatrixTabs } from './utils';\nimport { Card, CardBody, CardHeader, Text, Box, Flex } from '@backstage/ui';\nimport { RiskMatrixSquare } from './RiskMatrixSquare.tsx';\nimport { CurrentRisk } from './CurrentRisk.tsx';\nimport { useShowCurrentMatrixFeatureFlag } from '../../utils/featureFlags.ts';\n\nimport styles from './RiskMatrix.module.css';\nexport function RiskMatrix({\n riScWithMetadata,\n}: {\n riScWithMetadata: RiScWithMetadata;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const showCurrentMatrix = useShowCurrentMatrixFeatureFlag();\n const [tab, setTab] = useState<RiskMatrixTabs>(RiskMatrixTabs.initialRisk);\n const description = t('riskMatrix.currentRisk.matrixDescription');\n\n return (\n <Card className={styles.card}>\n <CardHeader>\n <Text variant=\"title-small\" weight=\"bold\">\n {t('riskMatrix.title')}\n </Text>\n </CardHeader>\n <CardBody>\n <MatrixTabs setTab={setTab} currentTab={tab} />\n {riScWithMetadata.content.scenarios.length > 0 && (\n <Box\n style={{\n marginTop: '18px',\n }}\n >\n <AggregatedCost riSc={riScWithMetadata.content} riskType={tab} />\n </Box>\n )}\n {(showCurrentMatrix || tab !== RiskMatrixTabs.currentRisk) && (\n <Box className={styles.gridWrapper}>\n <Box className={styles.grid}>\n <Box className={styles.konsekvens}>\n <Text\n variant=\"title-x-small\"\n weight=\"bold\"\n className={styles.centered}\n >\n {t('dictionary.consequence')}\n </Text>\n </Box>\n {riskMatrix.map((row, rowIndex) => (\n <Fragment key={rowIndex}>\n <Box className={styles.centered}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {5 - rowIndex}\n </Text>\n </Box>\n {row.map((_, colIndex) => (\n <RiskMatrixSquare\n key={`S:${colIndex} K:${4 - rowIndex}`}\n size=\"grid\"\n consequence={4 - rowIndex}\n probability={colIndex}\n riScCountObject={{\n riskTab: tab,\n riSc: riScWithMetadata,\n }}\n />\n ))}\n </Fragment>\n ))}\n <Box className={styles.centered}>{null}</Box>\n <Box className={styles.centered}>{null}</Box>\n {riskMatrix.map((_, col) => (\n <Box className={styles.centered} key={col}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {col + 1}\n </Text>\n </Box>\n ))}\n <Box className={styles.sannsynlighet}>\n <Text\n weight=\"bold\"\n variant=\"title-x-small\"\n className={styles.centered}\n >\n {t('dictionary.probability')}\n </Text>\n </Box>\n </Box>\n {tab === RiskMatrixTabs.currentRisk && (\n <Flex>\n <Text\n variant=\"body-large\"\n dangerouslySetInnerHTML={{ __html: description }}\n />\n </Flex>\n )}\n </Box>\n )}\n {tab === RiskMatrixTabs.currentRisk && (\n <Box className={styles.currentRiskReduction}>\n <CurrentRisk risc={riScWithMetadata} />\n </Box>\n )}\n </CardBody>\n </Card>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".
|
|
4
|
-
var styles = {"gridWrapper":"
|
|
3
|
+
var css_248z = ".RiskMatrix_gridWrapper__c20cc20ed1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n max-width: 400px;\n margin: 0 auto;\n gap: 16px;\n padding-top: 32px;\n}\n\n.RiskMatrix_grid__c20cc20ed1 {\n width: 100%;\n display: grid;\n grid-template-rows: repeat(5, 1fr) auto auto;\n grid-template-columns: 30px 30px repeat(5, 1fr);\n gap: 4px;\n}\n\n.RiskMatrix_centered__c20cc20ed1 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.RiskMatrix_konsekvens__c20cc20ed1 {\n grid-row: 1 / span 5;\n writing-mode: vertical-lr;\n transform: rotate(180deg);\n}\n\n.RiskMatrix_sannsynlighet__c20cc20ed1 {\n grid-row: 7;\n grid-column: 3 / span 5;\n}\n\n.RiskMatrix_estimatedCostContainer__c20cc20ed1 {\n margin-top: 18px;\n}\n\n.RiskMatrix_currentRiskReduction__c20cc20ed1 {\n width: 100%;\n max-width: 400px;\n margin: 0 auto;\n}\n";
|
|
4
|
+
var styles = {"gridWrapper":"RiskMatrix_gridWrapper__c20cc20ed1","grid":"RiskMatrix_grid__c20cc20ed1","centered":"RiskMatrix_centered__c20cc20ed1","konsekvens":"RiskMatrix_konsekvens__c20cc20ed1","sannsynlighet":"RiskMatrix_sannsynlighet__c20cc20ed1","currentRiskReduction":"RiskMatrix_currentRiskReduction__c20cc20ed1"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
|
@@ -8,6 +8,7 @@ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
|
8
8
|
import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
|
|
9
9
|
import { useScenario } from '../../contexts/ScenarioContext.esm.js';
|
|
10
10
|
import { findProbabilityIndex, findConsequenceIndex } from '../../utils/utilityfunctions.esm.js';
|
|
11
|
+
import { getScenarioRiskForMatrix } from '../../utils/risk.esm.js';
|
|
11
12
|
import { Text } from '@backstage/ui';
|
|
12
13
|
import styles from './RiskMatrixScenarioCount.module.css.esm.js';
|
|
13
14
|
|
|
@@ -15,7 +16,7 @@ function RiskMatrixScenarioCount({
|
|
|
15
16
|
riScWithMetadata,
|
|
16
17
|
probability,
|
|
17
18
|
consequence,
|
|
18
|
-
|
|
19
|
+
riskTab
|
|
19
20
|
}) {
|
|
20
21
|
const { t } = useTranslationRef(pluginRiScTranslationRef);
|
|
21
22
|
const [tooltipOpen, setTooltipOpen] = useState(false);
|
|
@@ -23,7 +24,7 @@ function RiskMatrixScenarioCount({
|
|
|
23
24
|
const { openScenarioDrawer, hoveredScenarios, setHoveredScenarios } = useScenario();
|
|
24
25
|
useEffect(() => {
|
|
25
26
|
setTooltipOpen(false);
|
|
26
|
-
}, [
|
|
27
|
+
}, [riskTab]);
|
|
27
28
|
function handleScenarioClick(ID) {
|
|
28
29
|
setTooltipOpen(false);
|
|
29
30
|
openScenarioDrawer(
|
|
@@ -31,13 +32,10 @@ function RiskMatrixScenarioCount({
|
|
|
31
32
|
riScWithMetadata.status !== RiScStatus.DeletionDraft && riScWithMetadata.status !== RiScStatus.DeletionSentForApproval
|
|
32
33
|
);
|
|
33
34
|
}
|
|
34
|
-
const scenarios = riScWithMetadata.content.scenarios.filter(
|
|
35
|
-
(scenario)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
initialRisk ? scenario.risk.consequence : scenario.remainingRisk.consequence
|
|
39
|
-
) === consequence
|
|
40
|
-
);
|
|
35
|
+
const scenarios = riScWithMetadata.content.scenarios.filter((scenario) => {
|
|
36
|
+
const matrixRisk = getScenarioRiskForMatrix(scenario, riskTab);
|
|
37
|
+
return findProbabilityIndex(matrixRisk.probability) === probability && findConsequenceIndex(matrixRisk.consequence) === consequence;
|
|
38
|
+
});
|
|
41
39
|
if (scenarios.length === 0) {
|
|
42
40
|
return null;
|
|
43
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskMatrixScenarioCount.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrixScenarioCount.tsx"],"sourcesContent":["import ClickAwayListener from '@mui/material/ClickAwayListener';\nimport Paper from '@mui/material/Paper';\nimport Tooltip from '@mui/material/Tooltip';\nimport { useState, useEffect } from 'react';\nimport { RiScStatus, RiScWithMetadata } from '../../utils/types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useScenario } from '../../contexts/ScenarioContext';\nimport {\n findConsequenceIndex,\n findProbabilityIndex,\n} from '../../utils/utilityfunctions';\nimport { Text } from '@backstage/ui';\nimport styles from './RiskMatrixScenarioCount.module.css';\n\ninterface ScenarioCountProps {\n riScWithMetadata: RiScWithMetadata;\n probability: number;\n consequence: number;\n
|
|
1
|
+
{"version":3,"file":"RiskMatrixScenarioCount.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrixScenarioCount.tsx"],"sourcesContent":["import ClickAwayListener from '@mui/material/ClickAwayListener';\nimport Paper from '@mui/material/Paper';\nimport Tooltip from '@mui/material/Tooltip';\nimport { useState, useEffect } from 'react';\nimport { RiScStatus, RiScWithMetadata } from '../../utils/types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useScenario } from '../../contexts/ScenarioContext';\nimport {\n findConsequenceIndex,\n findProbabilityIndex,\n} from '../../utils/utilityfunctions';\nimport { getScenarioRiskForMatrix } from '../../utils/risk';\nimport { Text } from '@backstage/ui';\nimport { RiskMatrixTabs } from './utils.tsx';\nimport styles from './RiskMatrixScenarioCount.module.css';\n\ninterface ScenarioCountProps {\n riScWithMetadata: RiScWithMetadata;\n probability: number;\n consequence: number;\n riskTab: RiskMatrixTabs;\n}\n\nexport function RiskMatrixScenarioCount({\n riScWithMetadata,\n probability,\n consequence,\n riskTab,\n}: ScenarioCountProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const [isHovered, setIsHovered] = useState(false);\n const { openScenarioDrawer, hoveredScenarios, setHoveredScenarios } =\n useScenario();\n\n useEffect(() => {\n setTooltipOpen(false);\n }, [riskTab]);\n\n function handleScenarioClick(ID: string) {\n setTooltipOpen(false);\n openScenarioDrawer(\n ID,\n riScWithMetadata.status !== RiScStatus.DeletionDraft &&\n riScWithMetadata.status !== RiScStatus.DeletionSentForApproval,\n );\n }\n\n const scenarios = riScWithMetadata.content.scenarios.filter(scenario => {\n const matrixRisk = getScenarioRiskForMatrix(scenario, riskTab);\n\n return (\n findProbabilityIndex(matrixRisk.probability) === probability &&\n findConsequenceIndex(matrixRisk.consequence) === consequence\n );\n });\n\n if (scenarios.length === 0) {\n return null;\n }\n const isHighlightedFromExternal = scenarios.some(s =>\n hoveredScenarios.some(h => h.ID === s.ID),\n );\n\n const tooltipList = (\n <div>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('riskMatrix.tooltip.title')}\n </Text>\n <ul className={styles.tooltipList}>\n {scenarios.map(scenario => (\n <li key={scenario.ID}>\n <div\n className={styles.tooltipListItem}\n role=\"button\"\n tabIndex={0}\n onClick={e => {\n e.stopPropagation();\n handleScenarioClick(scenario.ID);\n }}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleScenarioClick(scenario.ID);\n }\n }}\n >\n <Text>{scenario.title}</Text>\n </div>\n </li>\n ))}\n </ul>\n </div>\n );\n\n return (\n <ClickAwayListener onClickAway={() => setTooltipOpen(false)}>\n <Tooltip\n slotProps={{\n tooltip: { className: styles.tooltip },\n arrow: { className: styles.tooltipArrow },\n }}\n title={tooltipList}\n placement=\"right\"\n arrow\n open={tooltipOpen}\n >\n <Paper\n className={`${styles.circle} ${styles.centered} ${\n isHovered || isHighlightedFromExternal ? styles.circleHovered : ''\n }`}\n elevation={10}\n onClick={() => setTooltipOpen(!tooltipOpen)}\n onMouseEnter={() => {\n setIsHovered(true);\n // Add scenarios to hovered list using functional update and dedupe by ID\n setHoveredScenarios(prev => {\n const map = new Map<string, (typeof scenarios)[0]>();\n prev.forEach(p => map.set(p.ID, p));\n scenarios.forEach(s => map.set(s.ID, s));\n return Array.from(map.values());\n });\n }}\n onMouseLeave={() => {\n setIsHovered(false);\n setHoveredScenarios(prev =>\n prev.filter(s => !scenarios.some(s2 => s2.ID === s.ID)),\n );\n }}\n >\n <Text variant=\"body-large\" weight=\"bold\">\n {scenarios.length}\n </Text>\n </Paper>\n </Tooltip>\n </ClickAwayListener>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ function RiskMatrixSquare(props) {
|
|
|
18
18
|
riScWithMetadata: props.riScCountObject.riSc,
|
|
19
19
|
probability: props.probability,
|
|
20
20
|
consequence: props.consequence,
|
|
21
|
-
|
|
21
|
+
riskTab: props.riScCountObject.riskTab
|
|
22
22
|
}
|
|
23
23
|
)
|
|
24
24
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskMatrixSquare.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrixSquare.tsx"],"sourcesContent":["import { RiScWithMetadata } from '../../utils/types.ts';\nimport { riskMatrix, riskMatrixStroke } from '../../utils/constants.ts';\nimport { RiskMatrixScenarioCount } from './RiskMatrixScenarioCount.tsx';\nimport styles from './RiskMatrixSquare.module.css';\n\ntype RiskMatrixSquareProps = {\n size: 'small' | 'grid';\n probability: number; // 0 - 4\n consequence: number; // 0 - 4\n riScCountObject?: {\n riSc: RiScWithMetadata;\n
|
|
1
|
+
{"version":3,"file":"RiskMatrixSquare.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrixSquare.tsx"],"sourcesContent":["import { RiScWithMetadata } from '../../utils/types.ts';\nimport { riskMatrix, riskMatrixStroke } from '../../utils/constants.ts';\nimport { RiskMatrixScenarioCount } from './RiskMatrixScenarioCount.tsx';\nimport { RiskMatrixTabs } from './utils.tsx';\nimport styles from './RiskMatrixSquare.module.css';\n\ntype RiskMatrixSquareProps = {\n size: 'small' | 'grid';\n probability: number; // 0 - 4\n consequence: number; // 0 - 4\n riScCountObject?: {\n riSc: RiScWithMetadata;\n riskTab: RiskMatrixTabs;\n };\n};\n\nexport function RiskMatrixSquare(props: RiskMatrixSquareProps) {\n return (\n <div\n className={`${styles.squareWithRiScCount} ${props.size === 'small' ? styles.smallSquare : ''}`}\n style={{\n backgroundColor: riskMatrix[4 - props.consequence][props.probability],\n borderColor: riskMatrixStroke[4 - props.consequence][props.probability],\n }}\n key={`S:${props.probability} K:${props.consequence}`}\n >\n {props.riScCountObject && (\n <RiskMatrixScenarioCount\n riScWithMetadata={props.riScCountObject.riSc}\n probability={props.probability}\n consequence={props.consequence}\n riskTab={props.riScCountObject.riskTab}\n />\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AAgBO,SAAS,iBAAiB,KAAA,EAA8B;AAC7D,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA,EAAG,MAAA,CAAO,mBAAmB,CAAA,CAAA,EAAI,MAAM,IAAA,KAAS,OAAA,GAAU,MAAA,CAAO,WAAA,GAAc,EAAE,CAAA,CAAA;AAAA,MAC5F,KAAA,EAAO;AAAA,QACL,iBAAiB,UAAA,CAAW,CAAA,GAAI,MAAM,WAAW,CAAA,CAAE,MAAM,WAAW,CAAA;AAAA,QACpE,aAAa,gBAAA,CAAiB,CAAA,GAAI,MAAM,WAAW,CAAA,CAAE,MAAM,WAAW;AAAA,OACxE;AAAA,MAGC,gBAAM,eAAA,oBACL,GAAA;AAAA,QAAC,uBAAA;AAAA,QAAA;AAAA,UACC,gBAAA,EAAkB,MAAM,eAAA,CAAgB,IAAA;AAAA,UACxC,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,OAAA,EAAS,MAAM,eAAA,CAAgB;AAAA;AAAA;AACjC,KAAA;AAAA,IARG,CAAA,EAAA,EAAK,KAAA,CAAM,WAAW,CAAA,GAAA,EAAM,MAAM,WAAW,CAAA;AAAA,GAUpD;AAEJ;;;;"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { useApi, configApiRef, identityApiRef, githubAuthApiRef, fetchApiRef } from '@backstage/core-plugin-api';
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
|
-
import { buildNativeBackendUrls } from '../urls/backend.esm.js';
|
|
4
3
|
import { URLS } from '../urls/index.esm.js';
|
|
5
|
-
import { latestSupportedVersion } from '../utils/constants.esm.js';
|
|
6
|
-
import { useNativeRiScBackendFeatureFlag } from '../utils/featureFlags.esm.js';
|
|
7
|
-
import { useGithubRepositoryInformation } from '../utils/hooks.esm.js';
|
|
8
4
|
|
|
9
5
|
const PREDEFINED_SCENARIOS_TEMPLATE_ID = "web-app-api";
|
|
10
6
|
const PREDEFINED_SCENARIOS_SOURCE_TEST_REF = "add-scenarios";
|
|
@@ -15,24 +11,14 @@ function usePredefinedScenarios(isTestPredefinedScenariosEnabled) {
|
|
|
15
11
|
const identityApi = useApi(identityApiRef);
|
|
16
12
|
const githubApi = useApi(githubAuthApiRef);
|
|
17
13
|
const { fetch } = useApi(fetchApiRef);
|
|
18
|
-
const repoInformation = useGithubRepositoryInformation();
|
|
19
|
-
const isNativeBackendEnabled = useNativeRiScBackendFeatureFlag();
|
|
20
14
|
const backendUrl = configApi.getString("backend.baseUrl");
|
|
21
|
-
|
|
22
|
-
baseUrl: `${backendUrl}/api/risk-scorecard`,
|
|
23
|
-
owner: repoInformation.owner,
|
|
24
|
-
repo: repoInformation.name,
|
|
25
|
-
version: latestSupportedVersion
|
|
26
|
-
});
|
|
27
|
-
function uriToFetchInitRiScTemplateProxy(id, ref) {
|
|
15
|
+
function uriToFetchInitRiScTemplate(id, ref) {
|
|
28
16
|
const base = `${backendUrl}${URLS.backend.fetchInitRiScTemplate.replace(":id", id)}`;
|
|
29
17
|
return ref ? `${base}?ref=${encodeURIComponent(ref)}` : base;
|
|
30
18
|
}
|
|
31
|
-
const uriToFetchInitRiScTemplate = isNativeBackendEnabled ? uriToFetchInitRiScTemplateNative : uriToFetchInitRiScTemplateProxy;
|
|
32
19
|
return useQuery({
|
|
33
20
|
queryKey: [
|
|
34
21
|
PREDEFINED_SCENARIOS_QUERY_KEY,
|
|
35
|
-
isNativeBackendEnabled ? "native" : "proxy",
|
|
36
22
|
isTestPredefinedScenariosEnabled ? "test" : "main"
|
|
37
23
|
],
|
|
38
24
|
retry: (count, error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePredefinedScenarios.esm.js","sources":["../../src/hooks/usePredefinedScenarios.ts"],"sourcesContent":["import {\n configApiRef,\n fetchApiRef,\n githubAuthApiRef,\n identityApiRef,\n useApi,\n} from '@backstage/core-plugin-api';\nimport { useQuery } from '@tanstack/react-query';\nimport {
|
|
1
|
+
{"version":3,"file":"usePredefinedScenarios.esm.js","sources":["../../src/hooks/usePredefinedScenarios.ts"],"sourcesContent":["import {\n configApiRef,\n fetchApiRef,\n githubAuthApiRef,\n identityApiRef,\n useApi,\n} from '@backstage/core-plugin-api';\nimport { useQuery } from '@tanstack/react-query';\nimport { URLS } from '../urls/index.ts';\nimport { ScenarioDTO } from '../utils/DTOs.ts';\n\nconst PREDEFINED_SCENARIOS_TEMPLATE_ID = 'web-app-api';\nconst PREDEFINED_SCENARIOS_SOURCE_TEST_REF = 'add-scenarios';\n\nconst PREDEFINED_SCENARIO_IDS = ['xK9mP', 'mF6xQ'];\n\nconst PREDEFINED_SCENARIOS_QUERY_KEY = ['predefined-scenarios'] as const;\n\nexport function usePredefinedScenarios(\n isTestPredefinedScenariosEnabled: boolean,\n) {\n const configApi = useApi(configApiRef);\n const identityApi = useApi(identityApiRef);\n const githubApi = useApi(githubAuthApiRef);\n const { fetch } = useApi(fetchApiRef);\n\n const backendUrl = configApi.getString('backend.baseUrl');\n\n function uriToFetchInitRiScTemplate(id: string, ref?: string) {\n const base = `${backendUrl}${URLS.backend.fetchInitRiScTemplate.replace(':id', id)}`;\n return ref ? `${base}?ref=${encodeURIComponent(ref)}` : base;\n }\n\n return useQuery({\n queryKey: [\n PREDEFINED_SCENARIOS_QUERY_KEY,\n isTestPredefinedScenariosEnabled ? 'test' : 'main',\n ],\n retry: (count, error) => {\n if (\n error.message === 'Unexpected status 401' ||\n error.message === 'Unexpected status 403' ||\n error.message === 'Unexpected status 404' ||\n error.message === 'Unexpected status 429'\n ) {\n return false;\n }\n return count < 2;\n },\n queryFn: async ({ signal }): Promise<ScenarioDTO[]> => {\n const [identity, githubToken] = await Promise.all([\n identityApi.getCredentials(),\n githubApi.getAccessToken(['repo']),\n ]);\n\n const response = await fetch(\n uriToFetchInitRiScTemplate(\n PREDEFINED_SCENARIOS_TEMPLATE_ID,\n isTestPredefinedScenariosEnabled\n ? PREDEFINED_SCENARIOS_SOURCE_TEST_REF\n : undefined,\n ),\n {\n signal,\n headers: {\n Authorization: `Bearer ${identity.token}`,\n 'GitHub-Access-Token': githubToken,\n },\n },\n );\n if (!response.ok) {\n throw new Error(`Unexpected status ${response.status}`);\n }\n const data: unknown = await response.json();\n const scenarios = (data as { scenarios?: ScenarioDTO[] })?.scenarios;\n if (!Array.isArray(scenarios)) {\n throw new Error('Source file has no scenarios array');\n }\n\n return scenarios.filter(dto =>\n PREDEFINED_SCENARIO_IDS.includes(dto.scenario.ID),\n );\n },\n });\n}\n"],"names":[],"mappings":";;;;AAWA,MAAM,gCAAA,GAAmC,aAAA;AACzC,MAAM,oCAAA,GAAuC,eAAA;AAE7C,MAAM,uBAAA,GAA0B,CAAC,OAAA,EAAS,OAAO,CAAA;AAEjD,MAAM,8BAAA,GAAiC,CAAC,sBAAsB,CAAA;AAEvD,SAAS,uBACd,gCAAA,EACA;AACA,EAAA,MAAM,SAAA,GAAY,OAAO,YAAY,CAAA;AACrC,EAAA,MAAM,WAAA,GAAc,OAAO,cAAc,CAAA;AACzC,EAAA,MAAM,SAAA,GAAY,OAAO,gBAAgB,CAAA;AACzC,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,MAAA,CAAO,WAAW,CAAA;AAEpC,EAAA,MAAM,UAAA,GAAa,SAAA,CAAU,SAAA,CAAU,iBAAiB,CAAA;AAExD,EAAA,SAAS,0BAAA,CAA2B,IAAY,GAAA,EAAc;AAC5D,IAAA,MAAM,IAAA,GAAO,CAAA,EAAG,UAAU,CAAA,EAAG,IAAA,CAAK,QAAQ,qBAAA,CAAsB,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAC,CAAA,CAAA;AAClF,IAAA,OAAO,MAAM,CAAA,EAAG,IAAI,QAAQ,kBAAA,CAAmB,GAAG,CAAC,CAAA,CAAA,GAAK,IAAA;AAAA,EAC1D;AAEA,EAAA,OAAO,QAAA,CAAS;AAAA,IACd,QAAA,EAAU;AAAA,MACR,8BAAA;AAAA,MACA,mCAAmC,MAAA,GAAS;AAAA,KAC9C;AAAA,IACA,KAAA,EAAO,CAAC,KAAA,EAAO,KAAA,KAAU;AACvB,MAAA,IACE,KAAA,CAAM,OAAA,KAAY,uBAAA,IAClB,KAAA,CAAM,OAAA,KAAY,uBAAA,IAClB,KAAA,CAAM,OAAA,KAAY,uBAAA,IAClB,KAAA,CAAM,OAAA,KAAY,uBAAA,EAClB;AACA,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA,OAAO,KAAA,GAAQ,CAAA;AAAA,IACjB,CAAA;AAAA,IACA,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAA8B;AACrD,MAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,QAChD,YAAY,cAAA,EAAe;AAAA,QAC3B,SAAA,CAAU,cAAA,CAAe,CAAC,MAAM,CAAC;AAAA,OAClC,CAAA;AAED,MAAA,MAAM,WAAW,MAAM,KAAA;AAAA,QACrB,0BAAA;AAAA,UACE,gCAAA;AAAA,UACA,mCACI,oCAAA,GACA;AAAA,SACN;AAAA,QACA;AAAA,UACE,MAAA;AAAA,UACA,OAAA,EAAS;AAAA,YACP,aAAA,EAAe,CAAA,OAAA,EAAU,QAAA,CAAS,KAAK,CAAA,CAAA;AAAA,YACvC,qBAAA,EAAuB;AAAA;AACzB;AACF,OACF;AACA,MAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,kBAAA,EAAqB,QAAA,CAAS,MAAM,CAAA,CAAE,CAAA;AAAA,MACxD;AACA,MAAA,MAAM,IAAA,GAAgB,MAAM,QAAA,CAAS,IAAA,EAAK;AAC1C,MAAA,MAAM,YAAa,IAAA,EAAwC,SAAA;AAC3D,MAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC7B,QAAA,MAAM,IAAI,MAAM,oCAAoC,CAAA;AAAA,MACtD;AAEA,MAAA,OAAO,SAAA,CAAU,MAAA;AAAA,QAAO,CAAA,GAAA,KACtB,uBAAA,CAAwB,QAAA,CAAS,GAAA,CAAI,SAAS,EAAE;AAAA,OAClD;AAAA,IACF;AAAA,GACD,CAAA;AACH;;;;"}
|
package/dist/urls/backend.esm.js
CHANGED
|
@@ -19,25 +19,6 @@ const BACKEND_URLS = {
|
|
|
19
19
|
fetchDefaultRiScTypeDescriptors: "/api/proxy/risc-proxy/api/initrisc",
|
|
20
20
|
fetchInitRiScTemplate: "/api/proxy/risc-proxy/api/initrisc/:id"
|
|
21
21
|
};
|
|
22
|
-
function buildNativeBackendUrls({
|
|
23
|
-
baseUrl,
|
|
24
|
-
owner,
|
|
25
|
-
repo,
|
|
26
|
-
version
|
|
27
|
-
}) {
|
|
28
|
-
const riScUri = `${baseUrl}/risc/${owner}/${repo}`;
|
|
29
|
-
return {
|
|
30
|
-
riScUri,
|
|
31
|
-
uriToFetchAllRiScs: `${riScUri}/${version}/all`,
|
|
32
|
-
uriToFetchDifference: (id) => `${riScUri}/${id}/difference`,
|
|
33
|
-
uriToFetchRiSc: (id) => `${riScUri}/${id}`,
|
|
34
|
-
uriToDeleteRiSc: (id) => `${riScUri}/${id}`,
|
|
35
|
-
uriToPublishRiSc: (id) => `${riScUri}/publish/${id}`,
|
|
36
|
-
uriToFetchGcpCryptoKeys: `${baseUrl}/google/gcpCryptoKeys`,
|
|
37
|
-
uriToFetchDefaultRiScDescriptors: `${baseUrl}/initrisc`,
|
|
38
|
-
uriToFetchInitRiScTemplate: (id, ref) => `${baseUrl}/initrisc/${id}${ref ? `?ref=${encodeURIComponent(ref)}` : ""}`
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
22
|
|
|
42
|
-
export { BACKEND_URLS
|
|
23
|
+
export { BACKEND_URLS };
|
|
43
24
|
//# sourceMappingURL=backend.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.esm.js","sources":["../../src/urls/backend.ts"],"sourcesContent":["// prettier-ignore\n\n// (1) Requires a method to inject tokens. Not yet implemented.\n// (2) Temporary primitive url until method (1) is implemented.\n\nexport const BACKEND_URLS = {\n\tgoogle_gcpCryptoKeys: '/api/proxy/risc-proxy/api/google/gcpCryptoKeys',\n\triScUri: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName', // (1)\n\triScUri_temp: '/api/proxy/risc-proxy/api/risc', // (2)\n\topen_pr: '/api/proxy/risc-proxy/api/sops/:repoOwner/:repoName/openPullRequest/:branch', // (1)\n\tfetchAllRiScs: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/:version/all', // (1)\n\tfetchDifference: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/:id/difference', // (1)\n\tfetchRiSc: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/:id', // (1)\n deleteRiSc: 'api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/:id', // (1)\n\tpublishRiSc: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/publish/:id', // (1)\n fetchDefaultRiScTypeDescriptors: '/api/proxy/risc-proxy/api/initrisc',\n fetchInitRiScTemplate: '/api/proxy/risc-proxy/api/initrisc/:id',\n};\n
|
|
1
|
+
{"version":3,"file":"backend.esm.js","sources":["../../src/urls/backend.ts"],"sourcesContent":["// prettier-ignore\n\n// (1) Requires a method to inject tokens. Not yet implemented.\n// (2) Temporary primitive url until method (1) is implemented.\n\nexport const BACKEND_URLS = {\n\tgoogle_gcpCryptoKeys: '/api/proxy/risc-proxy/api/google/gcpCryptoKeys',\n\triScUri: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName', // (1)\n\triScUri_temp: '/api/proxy/risc-proxy/api/risc', // (2)\n\topen_pr: '/api/proxy/risc-proxy/api/sops/:repoOwner/:repoName/openPullRequest/:branch', // (1)\n\tfetchAllRiScs: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/:version/all', // (1)\n\tfetchDifference: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/:id/difference', // (1)\n\tfetchRiSc: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/:id', // (1)\n deleteRiSc: 'api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/:id', // (1)\n\tpublishRiSc: '/api/proxy/risc-proxy/api/risc/:repoOwner/:repoName/publish/:id', // (1)\n fetchDefaultRiScTypeDescriptors: '/api/proxy/risc-proxy/api/initrisc',\n fetchInitRiScTemplate: '/api/proxy/risc-proxy/api/initrisc/:id',\n};\n"],"names":[],"mappings":"AAKO,MAAM,YAAA,GAAe;AAAA,EAC3B,oBAAA,EAAsB,gDAAA;AAAA,EACtB,OAAA,EAAS,qDAAA;AAAA;AAAA,EACT,YAAA,EAAc,gCAAA;AAAA;AAAA,EACd,OAAA,EAAS,6EAAA;AAAA;AAAA,EACT,aAAA,EAAe,kEAAA;AAAA;AAAA,EACf,eAAA,EAAiB,oEAAA;AAAA;AAAA,EACjB,SAAA,EAAW,yDAAA;AAAA;AAAA,EACV,UAAA,EAAY,wDAAA;AAAA;AAAA,EACb,WAAA,EAAa,iEAAA;AAAA;AAAA,EACZ,+BAAA,EAAiC,oCAAA;AAAA,EACjC,qBAAA,EAAuB;AACzB;;;;"}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import { useApi, featureFlagsApiRef } from '@backstage/core-plugin-api';
|
|
2
2
|
|
|
3
3
|
const systemRiScsFeatureFlag = "system-riscs";
|
|
4
|
-
const nativeRiScBackendFeatureFlag = "native-risc-backend";
|
|
5
4
|
const predefinedScenariosFeatureFlag = "test-predefined-scenarios";
|
|
5
|
+
const showCurrentMatrixFeatureFlag = "show-current-matrix";
|
|
6
6
|
const riScFeatureFlags = [
|
|
7
7
|
// {
|
|
8
8
|
// name: systemRiScsFeatureFlag,
|
|
9
9
|
// description:
|
|
10
10
|
// 'Testing av system-RoS for Team SKVIS. Bruk på eget ansvar. UNNGÅ lagring av System-RoSer i åpne repoer.',
|
|
11
11
|
// },
|
|
12
|
-
// {
|
|
13
|
-
// name: nativeRiScBackendFeatureFlag,
|
|
14
|
-
// description: 'Testing av ny backend for RoS skrevet i typescript.',
|
|
15
|
-
// },
|
|
16
12
|
{
|
|
17
13
|
name: predefinedScenariosFeatureFlag,
|
|
18
14
|
description: "Testing av forh\xE5ndsdefinerte scenarioer fra initial-riscs-collection repoet. Skru p\xE5 for \xE5 hente fra PR-branch, skru av for \xE5 hente fra main."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: showCurrentMatrixFeatureFlag,
|
|
18
|
+
description: "Viser risikomatrisen for N\xE5risiko fanen."
|
|
19
19
|
}
|
|
20
20
|
];
|
|
21
21
|
function useSystemRiScsFeatureFlag() {
|
|
22
22
|
const featureFlagsApi = useApi(featureFlagsApiRef);
|
|
23
23
|
return featureFlagsApi.isActive(systemRiScsFeatureFlag);
|
|
24
24
|
}
|
|
25
|
-
function useNativeRiScBackendFeatureFlag() {
|
|
26
|
-
const featureFlagsApi = useApi(featureFlagsApiRef);
|
|
27
|
-
return featureFlagsApi.isActive(nativeRiScBackendFeatureFlag);
|
|
28
|
-
}
|
|
29
25
|
function usePredefinedScenariosFeatureFlag() {
|
|
30
26
|
const featureFlagsApi = useApi(featureFlagsApiRef);
|
|
31
27
|
return featureFlagsApi.isActive(predefinedScenariosFeatureFlag);
|
|
32
28
|
}
|
|
29
|
+
function useShowCurrentMatrixFeatureFlag() {
|
|
30
|
+
const featureFlagsApi = useApi(featureFlagsApiRef);
|
|
31
|
+
return featureFlagsApi.isActive(showCurrentMatrixFeatureFlag);
|
|
32
|
+
}
|
|
33
33
|
|
|
34
|
-
export {
|
|
34
|
+
export { predefinedScenariosFeatureFlag, riScFeatureFlags, showCurrentMatrixFeatureFlag, systemRiScsFeatureFlag, usePredefinedScenariosFeatureFlag, useShowCurrentMatrixFeatureFlag, useSystemRiScsFeatureFlag };
|
|
35
35
|
//# sourceMappingURL=featureFlags.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"featureFlags.esm.js","sources":["../../src/utils/featureFlags.ts"],"sourcesContent":["import {\n featureFlagsApiRef,\n type PluginFeatureFlagConfig,\n useApi,\n} from '@backstage/core-plugin-api';\n\nexport const systemRiScsFeatureFlag = 'system-riscs';\nexport const
|
|
1
|
+
{"version":3,"file":"featureFlags.esm.js","sources":["../../src/utils/featureFlags.ts"],"sourcesContent":["import {\n featureFlagsApiRef,\n type PluginFeatureFlagConfig,\n useApi,\n} from '@backstage/core-plugin-api';\n\nexport const systemRiScsFeatureFlag = 'system-riscs';\nexport const predefinedScenariosFeatureFlag = 'test-predefined-scenarios';\nexport const showCurrentMatrixFeatureFlag = 'show-current-matrix';\n\nexport const riScFeatureFlags: PluginFeatureFlagConfig[] = [\n // {\n // name: systemRiScsFeatureFlag,\n // description:\n // 'Testing av system-RoS for Team SKVIS. Bruk på eget ansvar. UNNGÅ lagring av System-RoSer i åpne repoer.',\n // },\n {\n name: predefinedScenariosFeatureFlag,\n description:\n 'Testing av forhåndsdefinerte scenarioer fra initial-riscs-collection repoet. Skru på for å hente fra PR-branch, skru av for å hente fra main.',\n },\n {\n name: showCurrentMatrixFeatureFlag,\n description: 'Viser risikomatrisen for Nårisiko fanen.',\n },\n];\n\nexport function useSystemRiScsFeatureFlag(): boolean {\n const featureFlagsApi = useApi(featureFlagsApiRef);\n return featureFlagsApi.isActive(systemRiScsFeatureFlag);\n}\n\nexport function usePredefinedScenariosFeatureFlag(): boolean {\n const featureFlagsApi = useApi(featureFlagsApiRef);\n return featureFlagsApi.isActive(predefinedScenariosFeatureFlag);\n}\n\nexport function useShowCurrentMatrixFeatureFlag(): boolean {\n const featureFlagsApi = useApi(featureFlagsApiRef);\n return featureFlagsApi.isActive(showCurrentMatrixFeatureFlag);\n}\n"],"names":[],"mappings":";;AAMO,MAAM,sBAAA,GAAyB;AAC/B,MAAM,8BAAA,GAAiC;AACvC,MAAM,4BAAA,GAA+B;AAErC,MAAM,gBAAA,GAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzD;AAAA,IACE,IAAA,EAAM,8BAAA;AAAA,IACN,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,4BAAA;AAAA,IACN,WAAA,EAAa;AAAA;AAEjB;AAEO,SAAS,yBAAA,GAAqC;AACnD,EAAA,MAAM,eAAA,GAAkB,OAAO,kBAAkB,CAAA;AACjD,EAAA,OAAO,eAAA,CAAgB,SAAS,sBAAsB,CAAA;AACxD;AAEO,SAAS,iCAAA,GAA6C;AAC3D,EAAA,MAAM,eAAA,GAAkB,OAAO,kBAAkB,CAAA;AACjD,EAAA,OAAO,eAAA,CAAgB,SAAS,8BAA8B,CAAA;AAChE;AAEO,SAAS,+BAAA,GAA2C;AACzD,EAAA,MAAM,eAAA,GAAkB,OAAO,kBAAkB,CAAA;AACjD,EAAA,OAAO,eAAA,CAAgB,SAAS,4BAA4B,CAAA;AAC9D;;;;"}
|
package/dist/utils/hooks.esm.js
CHANGED
|
@@ -2,12 +2,11 @@ import { useApi, identityApiRef, fetchApiRef, configApiRef, googleAuthApiRef, gi
|
|
|
2
2
|
import { useEntity } from '@backstage/plugin-catalog-react';
|
|
3
3
|
import { useState, useEffect, useRef, useCallback } from 'react';
|
|
4
4
|
import { URLS } from '../urls/index.esm.js';
|
|
5
|
-
import { buildNativeBackendUrls } from '../urls/backend.esm.js';
|
|
6
5
|
import { riScToDTOString, profileInfoToDTOString } from './DTOs.esm.js';
|
|
7
6
|
import { latestSupportedVersion } from './constants.esm.js';
|
|
8
7
|
import { ProcessingStatus } from './types.esm.js';
|
|
9
8
|
import { stringifyEntityRef } from '@backstage/catalog-model';
|
|
10
|
-
import { useSystemRiScsFeatureFlag
|
|
9
|
+
import { useSystemRiScsFeatureFlag } from './featureFlags.esm.js';
|
|
11
10
|
|
|
12
11
|
function useGithubRepositoryInformation() {
|
|
13
12
|
const [, org, repo] = useEntity().entity.metadata.annotations?.["backstage.io/view-url"].match(
|
|
@@ -56,7 +55,6 @@ function useAuthenticatedFetch() {
|
|
|
56
55
|
const identityApi = useApi(identityApiRef);
|
|
57
56
|
const { fetch } = useApi(fetchApiRef);
|
|
58
57
|
const backendUrl = configApi.getString("backend.baseUrl");
|
|
59
|
-
const isNativeBackendEnabled = useNativeRiScBackendFeatureFlag();
|
|
60
58
|
const riScUri = `${backendUrl}${URLS.backend.riScUri_temp}/${repoInformation.owner}/${repoInformation.name}`;
|
|
61
59
|
const uriToFetchAllRiScs = `${riScUri}/${latestSupportedVersion}/all`;
|
|
62
60
|
const uriToFetchDefaultRiScDescriptors = `${backendUrl}${URLS.backend.fetchDefaultRiScTypeDescriptors}`;
|
|
@@ -72,12 +70,6 @@ function useAuthenticatedFetch() {
|
|
|
72
70
|
function uriToPublishRiSc(id) {
|
|
73
71
|
return `${riScUri}/publish/${id}`;
|
|
74
72
|
}
|
|
75
|
-
const nativeBackendUrls = buildNativeBackendUrls({
|
|
76
|
-
baseUrl: `${backendUrl}/api/risk-scorecard`,
|
|
77
|
-
owner: repoInformation.owner,
|
|
78
|
-
repo: repoInformation.name,
|
|
79
|
-
version: latestSupportedVersion
|
|
80
|
-
});
|
|
81
73
|
function isDevelopment() {
|
|
82
74
|
return configApi.getString("auth.environment") === "development";
|
|
83
75
|
}
|
|
@@ -165,7 +157,7 @@ function useAuthenticatedFetch() {
|
|
|
165
157
|
function fetchDifference(selectedRiSc, onSuccess, onError) {
|
|
166
158
|
return identityApi.getProfileInfo().then((profile) => {
|
|
167
159
|
fullyAuthenticatedFetch(
|
|
168
|
-
|
|
160
|
+
uriToFetchDifference(selectedRiSc.id),
|
|
169
161
|
"POST",
|
|
170
162
|
onSuccess,
|
|
171
163
|
(_, rejectedLogin) => {
|
|
@@ -183,7 +175,7 @@ function useAuthenticatedFetch() {
|
|
|
183
175
|
function fetchRiScs(onSuccess, onError) {
|
|
184
176
|
if (isDevelopment()) {
|
|
185
177
|
fullyAuthenticatedFetch(
|
|
186
|
-
|
|
178
|
+
uriToFetchAllRiScs,
|
|
187
179
|
"GET",
|
|
188
180
|
onSuccess,
|
|
189
181
|
(error, rejectedLogin) => {
|
|
@@ -192,7 +184,7 @@ function useAuthenticatedFetch() {
|
|
|
192
184
|
);
|
|
193
185
|
} else {
|
|
194
186
|
googleAuthenticatedFetch(
|
|
195
|
-
|
|
187
|
+
uriToFetchAllRiScs,
|
|
196
188
|
"GET",
|
|
197
189
|
onSuccess,
|
|
198
190
|
(error, rejectedLogin) => {
|
|
@@ -204,7 +196,7 @@ function useAuthenticatedFetch() {
|
|
|
204
196
|
function postFeedback(feedback) {
|
|
205
197
|
return new Promise((resolve, reject) => {
|
|
206
198
|
fullyAuthenticatedFetch(
|
|
207
|
-
|
|
199
|
+
`${riScUri}/feedback`,
|
|
208
200
|
"POST",
|
|
209
201
|
() => resolve(),
|
|
210
202
|
(error) => reject(error),
|
|
@@ -214,7 +206,7 @@ function useAuthenticatedFetch() {
|
|
|
214
206
|
}
|
|
215
207
|
function fetchGcpCryptoKeys(onSuccess, onError) {
|
|
216
208
|
googleAuthenticatedFetch(
|
|
217
|
-
|
|
209
|
+
`${backendUrl}/api/proxy/risc-proxy/api/google/gcpCryptoKeys`,
|
|
218
210
|
// URL
|
|
219
211
|
"GET",
|
|
220
212
|
(res) => onSuccess(res),
|
|
@@ -226,7 +218,7 @@ function useAuthenticatedFetch() {
|
|
|
226
218
|
function publishRiScs(riScId, onSuccess, onError) {
|
|
227
219
|
return identityApi.getProfileInfo().then(
|
|
228
220
|
(profile) => fullyAuthenticatedFetch(
|
|
229
|
-
|
|
221
|
+
uriToPublishRiSc(riScId),
|
|
230
222
|
"POST",
|
|
231
223
|
(res) => {
|
|
232
224
|
if (onSuccess) onSuccess(res);
|
|
@@ -241,7 +233,7 @@ function useAuthenticatedFetch() {
|
|
|
241
233
|
function postRiScs(riSc, generateDefault, sopsConfig, defaultRiScId, onSuccess, onError) {
|
|
242
234
|
return identityApi.getProfileInfo().then(
|
|
243
235
|
(profile) => fullyAuthenticatedFetch(
|
|
244
|
-
|
|
236
|
+
`${riScUri}?generateDefault=${generateDefault}`,
|
|
245
237
|
"POST",
|
|
246
238
|
(res) => {
|
|
247
239
|
if (onSuccess) onSuccess(res);
|
|
@@ -256,7 +248,7 @@ function useAuthenticatedFetch() {
|
|
|
256
248
|
function putRiScs(riSc, onSuccess, onError) {
|
|
257
249
|
return identityApi.getProfileInfo().then(
|
|
258
250
|
(profile) => fullyAuthenticatedFetch(
|
|
259
|
-
|
|
251
|
+
uriToFetchRiSc(riSc.id),
|
|
260
252
|
"PUT",
|
|
261
253
|
(res) => {
|
|
262
254
|
if (onSuccess) onSuccess(res);
|
|
@@ -275,7 +267,7 @@ function useAuthenticatedFetch() {
|
|
|
275
267
|
}
|
|
276
268
|
function deleteRiScs(riScId, onSuccess, onError) {
|
|
277
269
|
fullyAuthenticatedFetch(
|
|
278
|
-
|
|
270
|
+
uriToDeleteRiSc(riScId),
|
|
279
271
|
"DELETE",
|
|
280
272
|
(res) => {
|
|
281
273
|
if (onSuccess) onSuccess(res);
|
|
@@ -287,7 +279,7 @@ function useAuthenticatedFetch() {
|
|
|
287
279
|
}
|
|
288
280
|
function fetchDefaultRiScTypeDescriptors(onSuccess) {
|
|
289
281
|
fullyAuthenticatedFetch(
|
|
290
|
-
|
|
282
|
+
uriToFetchDefaultRiScDescriptors,
|
|
291
283
|
"GET",
|
|
292
284
|
(res) => onSuccess(res),
|
|
293
285
|
() => {
|