@kartverket/backstage-plugin-risk-scorecard 1.0.4 → 1.0.5
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/esm/index-c43b6519.esm.js +438 -0
- package/dist/esm/index-c43b6519.esm.js.map +1 -0
- package/dist/esm/{index-af063c38.esm.js → index-fd361b7d.esm.js} +3 -406
- package/dist/esm/index-fd361b7d.esm.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.esm.js +2 -1
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/dist/esm/index-4258fc5b.esm.js +0 -34
- package/dist/esm/index-4258fc5b.esm.js.map +0 -1
- package/dist/esm/index-af063c38.esm.js.map +0 -1
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
import { createRouteRef, createSubRouteRef, createPlugin, createRoutableExtension } from '@backstage/core-plugin-api';
|
|
2
|
+
import { createTranslationRef, createTranslationResource } from '@backstage/core-plugin-api/alpha';
|
|
3
|
+
|
|
4
|
+
const rootRouteRef = createRouteRef({
|
|
5
|
+
id: "riSc"
|
|
6
|
+
});
|
|
7
|
+
const scenarioRouteRef = createSubRouteRef({
|
|
8
|
+
id: "scenarioId",
|
|
9
|
+
parent: rootRouteRef,
|
|
10
|
+
path: "/:riScId/:scenarioId"
|
|
11
|
+
});
|
|
12
|
+
const riScRouteRef = createSubRouteRef({
|
|
13
|
+
id: "riScId",
|
|
14
|
+
parent: rootRouteRef,
|
|
15
|
+
path: "/:riScId"
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
const riScPlugin = createPlugin({
|
|
19
|
+
id: "riSc",
|
|
20
|
+
routes: {
|
|
21
|
+
root: rootRouteRef,
|
|
22
|
+
scenario: scenarioRouteRef,
|
|
23
|
+
riSc: riScRouteRef
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
const RiScPage = riScPlugin.provide(
|
|
27
|
+
createRoutableExtension({
|
|
28
|
+
name: "RiScPage",
|
|
29
|
+
component: () => import('./index-fd361b7d.esm.js').then((m) => m.RiScPlugin),
|
|
30
|
+
mountPoint: rootRouteRef
|
|
31
|
+
})
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const pluginRiScTranslationRef = createTranslationRef({
|
|
35
|
+
id: "plugin.riSc",
|
|
36
|
+
messages: {
|
|
37
|
+
contentHeader: {
|
|
38
|
+
title: "Risk scorecard",
|
|
39
|
+
createNewButton: "Create new scorecard"
|
|
40
|
+
},
|
|
41
|
+
dictionary: {
|
|
42
|
+
cancel: "Cancel",
|
|
43
|
+
close: "Close",
|
|
44
|
+
completed: "Completed",
|
|
45
|
+
confirm: "Confirm",
|
|
46
|
+
consequence: "Consequence",
|
|
47
|
+
// Severity, Impact, Effect or Consequence
|
|
48
|
+
deadline: "Deadline",
|
|
49
|
+
// Deadline or Due date
|
|
50
|
+
delete: "Delete",
|
|
51
|
+
description: "Description",
|
|
52
|
+
discardChanges: "Discard changes",
|
|
53
|
+
edit: "Edit",
|
|
54
|
+
estimatedRisk: "Estimated risk",
|
|
55
|
+
initialRisk: "Initial risk",
|
|
56
|
+
// Starting or Initial risk
|
|
57
|
+
measure: "Actions",
|
|
58
|
+
// Measure, Action or Initiative
|
|
59
|
+
measureOwner: "Responsible",
|
|
60
|
+
// Responsible? Measure owner? Initiative owner?
|
|
61
|
+
next: "Next",
|
|
62
|
+
planned: "Planned",
|
|
63
|
+
previous: "Previous",
|
|
64
|
+
probability: "Probability",
|
|
65
|
+
// Likelihood or Probability
|
|
66
|
+
restRisk: "Remaining risk",
|
|
67
|
+
// Residual or Remaining risk
|
|
68
|
+
risk: "Risk",
|
|
69
|
+
save: "Save",
|
|
70
|
+
saveAndClose: "Save and close",
|
|
71
|
+
saveError: "Could not save scenario. Please try again.",
|
|
72
|
+
scenario: "Scenario",
|
|
73
|
+
scope: "Scope",
|
|
74
|
+
status: "Status",
|
|
75
|
+
threatActors: "Threat actors",
|
|
76
|
+
title: "Title",
|
|
77
|
+
vulnerabilities: "Vulnerabilities"
|
|
78
|
+
},
|
|
79
|
+
rosStatus: {
|
|
80
|
+
statusBadge: {
|
|
81
|
+
missing: "Awaiting acceptance from risk owner",
|
|
82
|
+
// Mangler godkjenning av risikoeier
|
|
83
|
+
approved: "Accepted by risk owner",
|
|
84
|
+
// Godkjent av risikoeier
|
|
85
|
+
error: "Failed to retrieve status"
|
|
86
|
+
// Kunne ikke hente status
|
|
87
|
+
},
|
|
88
|
+
prStatus: "Pending PR approval in Github ",
|
|
89
|
+
// Avventer godkjenning av PR i Github
|
|
90
|
+
approveButton: "Accept risks"
|
|
91
|
+
// Godkjenn ROS
|
|
92
|
+
},
|
|
93
|
+
publishDialog: {
|
|
94
|
+
title: "Accept risks",
|
|
95
|
+
// Godkjenn ROS
|
|
96
|
+
checkboxLabel: "I confirm that I am the risk owner and accept the risks detailed in this risk scorecard."
|
|
97
|
+
},
|
|
98
|
+
scenarioTable: {
|
|
99
|
+
title: "Risk scenarios",
|
|
100
|
+
addScenarioButton: "Add scenario",
|
|
101
|
+
columns: {
|
|
102
|
+
measuresCount: "Actions",
|
|
103
|
+
consequenceChar: "C",
|
|
104
|
+
probabilityChar: "P",
|
|
105
|
+
completed: "complete"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
riskMatrix: {
|
|
109
|
+
title: "Risk matrix",
|
|
110
|
+
// Risk matrix or Risk overview
|
|
111
|
+
estimatedRisk: {
|
|
112
|
+
title: "Estimated risk",
|
|
113
|
+
suffix: {
|
|
114
|
+
thousand: "{{count}} thousand",
|
|
115
|
+
million_one: "{{count}} million",
|
|
116
|
+
million_other: "{{count}} million",
|
|
117
|
+
billion_one: "{{count}} billion",
|
|
118
|
+
billion_other: "{{count}} billion",
|
|
119
|
+
trillion_one: "{{count}} trillion",
|
|
120
|
+
trillion_other: "{{count}} trillion"
|
|
121
|
+
},
|
|
122
|
+
unit: {
|
|
123
|
+
nokPerYear: "NOK/year"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
tooltip: {
|
|
127
|
+
title: "Risk scenarios"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
infoDialog: {
|
|
131
|
+
title: "Estimated risk",
|
|
132
|
+
description: "The estimated risk is a calculation based on the risks the different scenarios pose. If there is a high probability that a serious consequence will occur, this could potentially become a large cost for the organization. In other words, the cost is an attempt to make the risk value more tangible and is the sum of the estimated risk for all the risk scenarios in this risk scorecard.",
|
|
133
|
+
calculatedHowTitle: "How do we calculate the estimated risk?",
|
|
134
|
+
calculatedHow: "Consequence is measured in cost (in NOK) per incident and probability is measured in incidents per year. The estimated risk is calculated as C x P.",
|
|
135
|
+
consequenceTitle: "Consequence (NOK/incident)",
|
|
136
|
+
// incident, event or occurrence
|
|
137
|
+
probabilityTitle: "Probability (incidents/year)",
|
|
138
|
+
probabilityDescription: {
|
|
139
|
+
"0": "every 100 years",
|
|
140
|
+
// 100 year intervals?
|
|
141
|
+
"1": "every 10 years",
|
|
142
|
+
// 10 year intervals?
|
|
143
|
+
"2": "yearly",
|
|
144
|
+
// almost yearly?
|
|
145
|
+
"3": "weekly",
|
|
146
|
+
"4": "daily"
|
|
147
|
+
},
|
|
148
|
+
example: "A scenario with consequence 2 and probability 4 has an estimated risk of 30 000 NOK/incident x 50 incidents/year = 1 500 000 NOK/year."
|
|
149
|
+
},
|
|
150
|
+
rosDialog: {
|
|
151
|
+
titleNew: "New risk scorecard",
|
|
152
|
+
titleEdit: "Edit scorecard",
|
|
153
|
+
titleError: "The scorecard has to have a title",
|
|
154
|
+
scopeDescription: "Describe what the risk analysis will assess. Specify any key areas which are not part of the scope.",
|
|
155
|
+
scopeError: "The scorecard has to have a description of the scope"
|
|
156
|
+
},
|
|
157
|
+
scenarioStepper: {
|
|
158
|
+
initialRiskStep: {
|
|
159
|
+
title: "Initial risk",
|
|
160
|
+
subtitle: "The initial risk is defined by the consequence of the scenario and the probability of it occurring.",
|
|
161
|
+
consequenceSubtitle: "How severe is the potential impact? If the scenario can impact more than one category, choose the highest level of consequence.",
|
|
162
|
+
probabilitySubtitle: "How likely is it that this scenario will occur? If you are between two probability values, choose the higher one."
|
|
163
|
+
},
|
|
164
|
+
restRiskStep: {
|
|
165
|
+
title: "Remaining risk",
|
|
166
|
+
subtitle: "What is the risk reduced to when all the planned actions have been completed?",
|
|
167
|
+
consequenceSubtitle: "How severe is the consequence of this scenario after all actions are complete?",
|
|
168
|
+
probabilitySubtitle: "What is the likelihood of this scenario after all actions are complete?"
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
scenarioDrawer: {
|
|
172
|
+
title: "Risk scenario",
|
|
173
|
+
titleError: "Scenario title is required",
|
|
174
|
+
subtitle: "An unwanted incident that could potentially harm the component.",
|
|
175
|
+
// harm or affect negatively?
|
|
176
|
+
threatActorSubtitle: "Someone who attempts to access or abuse the system",
|
|
177
|
+
// system or component or both?
|
|
178
|
+
vulnerabilitySubtitle: "Weakness in the system that the threat actor can exploit",
|
|
179
|
+
consequenceTab: {
|
|
180
|
+
subtitle: "How severe is the potential impact? If the scenario can impact more than one category, choose the highest level of consequence."
|
|
181
|
+
},
|
|
182
|
+
probabilityTab: {
|
|
183
|
+
subtitle: "How likely is it that this scenario will occur? If you are between two probability values, choose the higher one."
|
|
184
|
+
},
|
|
185
|
+
measureTab: {
|
|
186
|
+
subtitle: "What actions should be taken to avoid or reduce the risk of this scenario?",
|
|
187
|
+
measureOwnerDescription: "Decide who will be responsible for completion of this action",
|
|
188
|
+
addMeasureButton: "Add planned action",
|
|
189
|
+
actionsTitle: "Planned actions",
|
|
190
|
+
plannedMeasures: "Planned actions",
|
|
191
|
+
existingMeasure: "Existing measures",
|
|
192
|
+
existingMeasureSubtitle: "Brief description of relevant measures that have already been implemented to reduce the risk of this scenario"
|
|
193
|
+
},
|
|
194
|
+
restRiskTab: {
|
|
195
|
+
subtitle: "Define the remaining risk for the scenario. Remaining risk is the consequence and probability for this scenario after all planned actions have been completed."
|
|
196
|
+
},
|
|
197
|
+
deleteScenarioButton: "Delete scenario",
|
|
198
|
+
deleteScenarioConfirmation: "Are you sure you want to delete this scenario?",
|
|
199
|
+
closeConfirmation: "Do you want to save your changes?"
|
|
200
|
+
},
|
|
201
|
+
consequenceTable: {
|
|
202
|
+
rows: {
|
|
203
|
+
"1": "Negligible",
|
|
204
|
+
// Insignificant, negligible (ubetydelig)
|
|
205
|
+
"2": "Small",
|
|
206
|
+
// Liten
|
|
207
|
+
"3": "Moderate",
|
|
208
|
+
"4": "Severe",
|
|
209
|
+
// Alvorlig
|
|
210
|
+
"5": "Critical"
|
|
211
|
+
// Catastrophic eller Critical
|
|
212
|
+
},
|
|
213
|
+
columns: {
|
|
214
|
+
health: "Life and health",
|
|
215
|
+
// Health and safety, Life and limb, Health and lives (Liv og helse)
|
|
216
|
+
economical: "Financial",
|
|
217
|
+
// Financial consequences, economic implications
|
|
218
|
+
privacy: "Privacy",
|
|
219
|
+
// Personvern
|
|
220
|
+
reputation: "Reputation and trust"
|
|
221
|
+
// Reputation and trust, confidence, faith (Omdømme og tillit)
|
|
222
|
+
},
|
|
223
|
+
cells: {
|
|
224
|
+
health: {
|
|
225
|
+
"1": "Impact on life and health cannot be rated less severe than 3",
|
|
226
|
+
// Liv og helse kan ikke være mindre alvorlig enn 3
|
|
227
|
+
"2": "Impact on life and health cannot be rated less severe than 3",
|
|
228
|
+
"3": "Temporary or less severe health implications",
|
|
229
|
+
// implications, effects or consequence? Midlertidig eller mindre alvorlige helsemessige konsekvenser
|
|
230
|
+
"4": "Permanent or severe health implications",
|
|
231
|
+
// implications, effects or consequence? Lasting or Permanent? Varige eller alvorlige helsemessige konsekvenser
|
|
232
|
+
"5": "Death or permanent severe health implications"
|
|
233
|
+
// implications, effects or consequence? Lasting or permanent? Død eller varige alvorlige helsemssige konsekvenser
|
|
234
|
+
},
|
|
235
|
+
economical: {
|
|
236
|
+
"1": "Temporary minor financial loss",
|
|
237
|
+
// TODO: Hvor kort er forbigående? Forbigående mindre økonomisk tap
|
|
238
|
+
"2": "Temporary financial loss",
|
|
239
|
+
// Forbigående økonomisk tap
|
|
240
|
+
"3": "Financial loss of some duration",
|
|
241
|
+
// Økonomisk tap av noe varighet
|
|
242
|
+
"4": "Financial loss of considerable duration for the organization and any third parties",
|
|
243
|
+
// Økonomisk tap av betydelig varighet for Kartverket og evt. tredjeparter
|
|
244
|
+
"5": "Permanent and severe financial loss"
|
|
245
|
+
// Varig og alvorlig økonomisk tap
|
|
246
|
+
},
|
|
247
|
+
privacy: {
|
|
248
|
+
"1": "The right to privacy is violated for a very short period and does not involve sensitive categories or vulnerable groups",
|
|
249
|
+
//særlige kategorier = sensitive kategorier? special/particular/sensitive categories
|
|
250
|
+
"2": "The right to privacy is violated for a longer period and involves sensitive categories or vulnerable groups",
|
|
251
|
+
"3": "The right to privacy is severely violated for a longer period and involves sensitive categories or vulnerable groups",
|
|
252
|
+
"4": "The right to privacy is being violated in a very serious manner",
|
|
253
|
+
// very severely violated?
|
|
254
|
+
"5": "Impact on privacy cannot be rated more severe than 4"
|
|
255
|
+
},
|
|
256
|
+
reputation: {
|
|
257
|
+
"1": "Temporary loss of reputation and little impact on trust",
|
|
258
|
+
"2": "Negative attention in national media that can reduce trust",
|
|
259
|
+
// articles, news, items, publicity, mentions, attention?
|
|
260
|
+
"3": "Lasting negative attention in national and international media that can reduce trust",
|
|
261
|
+
"4": "Impact on reputation and trust cannot be rated more severe than 3",
|
|
262
|
+
"5": "Impact on reputation and trust cannot be rated more severe than 3"
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
probabilityTable: {
|
|
267
|
+
rows: {
|
|
268
|
+
"1": "Very low",
|
|
269
|
+
// svært liten
|
|
270
|
+
"2": "Low",
|
|
271
|
+
// liten
|
|
272
|
+
"3": "Moderat",
|
|
273
|
+
// moderat
|
|
274
|
+
"4": "High",
|
|
275
|
+
// stor
|
|
276
|
+
"5": "Very high"
|
|
277
|
+
// svært stor
|
|
278
|
+
},
|
|
279
|
+
cells: {
|
|
280
|
+
"1": "The scenario is unlikely to occur. It occurs less often than every 100 years",
|
|
281
|
+
"2": "The scenario is unlikely to occur. It can occur every 10 years",
|
|
282
|
+
"3": "The scenario can occur. It can occur almost every year",
|
|
283
|
+
"4": "The scenario will very likely occur. It can occur almost weekly",
|
|
284
|
+
"5": "The scenario is almost guaranteed to occur. It can occur almost daily"
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
const pluginRiScNorwegianTranslation = createTranslationResource({
|
|
290
|
+
ref: pluginRiScTranslationRef,
|
|
291
|
+
translations: {
|
|
292
|
+
no: () => Promise.resolve({
|
|
293
|
+
default: {
|
|
294
|
+
"contentHeader.title": "Risiko- og s\xE5rbarhetsanalyse",
|
|
295
|
+
"contentHeader.createNewButton": "Opprett ny analyse",
|
|
296
|
+
"dictionary.cancel": "Avbryt",
|
|
297
|
+
"dictionary.close": "Lukk",
|
|
298
|
+
"dictionary.completed": "Fullf\xF8rt",
|
|
299
|
+
"dictionary.confirm": "Bekreft",
|
|
300
|
+
"dictionary.consequence": "Konsekvens",
|
|
301
|
+
"dictionary.deadline": "Frist",
|
|
302
|
+
"dictionary.delete": "Slett",
|
|
303
|
+
"dictionary.description": "Beskrivelse",
|
|
304
|
+
"dictionary.discardChanges": "Forkast endringer",
|
|
305
|
+
"dictionary.edit": "Rediger",
|
|
306
|
+
"dictionary.estimatedRisk": "Estimert risiko",
|
|
307
|
+
"dictionary.initialRisk": "Startrisiko",
|
|
308
|
+
"dictionary.measure": "Tiltak",
|
|
309
|
+
"dictionary.measureOwner": "Tiltakseier",
|
|
310
|
+
"dictionary.next": "Neste",
|
|
311
|
+
"dictionary.planned": "Planlagt",
|
|
312
|
+
"dictionary.previous": "Forrige",
|
|
313
|
+
"dictionary.probability": "Sannsynlighet",
|
|
314
|
+
"dictionary.restRisk": "Restrisiko",
|
|
315
|
+
"dictionary.risk": "Risiko",
|
|
316
|
+
"dictionary.save": "Lagre",
|
|
317
|
+
"dictionary.saveAndClose": "Lagre og lukk",
|
|
318
|
+
"dictionary.saveError": "Noe gikk galt ved lagring. Venligst pr\xF8v igjen.",
|
|
319
|
+
"dictionary.scenario": "Scenario",
|
|
320
|
+
"dictionary.scope": "Omfang",
|
|
321
|
+
"dictionary.status": "Status",
|
|
322
|
+
"dictionary.threatActors": "Trusselakt\xF8rer",
|
|
323
|
+
"dictionary.title": "Tittel",
|
|
324
|
+
"dictionary.vulnerabilities": "S\xE5rbarheter",
|
|
325
|
+
"rosStatus.statusBadge.missing": "Venter p\xE5 godkjenning av risikoeier",
|
|
326
|
+
"rosStatus.statusBadge.approved": "Godkjent av risikoeier",
|
|
327
|
+
"rosStatus.statusBadge.error": "Kunne ikke hente status",
|
|
328
|
+
"rosStatus.prStatus": "Avventer godkjenning av PR i Github",
|
|
329
|
+
"rosStatus.approveButton": "Godkjenn ROS",
|
|
330
|
+
"publishDialog.title": "Godkjenn ROS-analyse",
|
|
331
|
+
"publishDialog.checkboxLabel": "Jeg bekrefter at jeg er risikoeier og godtar risikoen beskrevet i denne risiko- og s\xE5rbarhetsanalysen.",
|
|
332
|
+
"scenarioTable.title": "Risikoscenarioer",
|
|
333
|
+
"scenarioTable.addScenarioButton": "Legg til scenario",
|
|
334
|
+
"scenarioTable.columns.measuresCount": "Tiltak",
|
|
335
|
+
"scenarioTable.columns.consequenceChar": "K",
|
|
336
|
+
"scenarioTable.columns.probabilityChar": "S",
|
|
337
|
+
"scenarioTable.columns.completed": "fullf\xF8rt",
|
|
338
|
+
"riskMatrix.title": "Risikomatrise",
|
|
339
|
+
"riskMatrix.estimatedRisk.title": "Estimert risiko",
|
|
340
|
+
"riskMatrix.estimatedRisk.suffix.thousand": "{{count}} tusen",
|
|
341
|
+
"riskMatrix.estimatedRisk.suffix.million_one": "{{count}} million",
|
|
342
|
+
"riskMatrix.estimatedRisk.suffix.million_other": "{{count}} millioner",
|
|
343
|
+
"riskMatrix.estimatedRisk.suffix.billion_one": "{{count}} milliard",
|
|
344
|
+
"riskMatrix.estimatedRisk.suffix.billion_other": "{{count}} milliarder",
|
|
345
|
+
"riskMatrix.estimatedRisk.suffix.trillion_one": "{{count}} billion",
|
|
346
|
+
"riskMatrix.estimatedRisk.suffix.trillion_other": "{{count}} billioner",
|
|
347
|
+
"riskMatrix.estimatedRisk.unit.nokPerYear": "kr/\xE5r",
|
|
348
|
+
"riskMatrix.tooltip.title": "Risikoscenarioer",
|
|
349
|
+
"infoDialog.title": "Estimert risiko",
|
|
350
|
+
"infoDialog.description": "Den estimerte risikoen er basert p\xE5 hvor stor risiko de forskjellige scenariene utgj\xF8r. Hvis det er stor sannsynlighet for at en alvorlig konsekvens skjer er det h\xF8y risiko for at det kan bli en stor kostnad for Kartverket. Kostnaden er med andre ord et fors\xF8k p\xE5 \xE5 konkretisere verdien av risiko og er summen av den estimerte risikoen for alle risikoscenariene i denne ROS-analysen.",
|
|
351
|
+
"infoDialog.calculatedHowTitle": "Hvordan regner vi ut estimert risiko?",
|
|
352
|
+
"infoDialog.calculatedHow": "Konsekvens m\xE5les i kroner per hendelse og sannsynlighet m\xE5les i hendelser per \xE5r. Den estimerte risikoen blir da: K x S.",
|
|
353
|
+
"infoDialog.consequenceTitle": "Konsekvens (kr/hendelse)",
|
|
354
|
+
"infoDialog.probabilityTitle": "Sannsynlighet (hendelser/\xE5r)",
|
|
355
|
+
"infoDialog.probabilityDescription.0": "ca hvert 100. \xE5r",
|
|
356
|
+
"infoDialog.probabilityDescription.1": "ca hvert 10. \xE5r",
|
|
357
|
+
"infoDialog.probabilityDescription.2": "ca \xE5rlig",
|
|
358
|
+
"infoDialog.probabilityDescription.3": "ca ukentlig",
|
|
359
|
+
"infoDialog.probabilityDescription.4": "ca daglig",
|
|
360
|
+
"infoDialog.example": "Et risikoscenario med konsekvens 2 og sannsynlighet 4 har en estimert risiko p\xE5 30 000 kr/hendelse x 50 hendelser/\xE5r = 1 500 000 kr/\xE5r.",
|
|
361
|
+
"rosDialog.titleNew": "Ny risiko- og s\xE5rbarhetsanalyse",
|
|
362
|
+
"rosDialog.titleEdit": "Rediger tittel og omfang",
|
|
363
|
+
"rosDialog.titleError": "ROS-analysen m\xE5 ha en tittel",
|
|
364
|
+
"rosDialog.scopeDescription": "Beskriv hva analysen skal vurdere. Hva som ikke inng\xE5r som en del av omfanget m\xE5 ogs\xE5 defineres.",
|
|
365
|
+
//TODO
|
|
366
|
+
"rosDialog.scopeError": "ROS-analysen m\xE5 ha et omfang",
|
|
367
|
+
"scenarioStepper.initialRiskStep.title": "Startrisiko",
|
|
368
|
+
"scenarioStepper.initialRiskStep.subtitle": "Risikoen er kombinasjonen av konsekvensen av scenarioet og sannsynligheten for at det inntreffer.",
|
|
369
|
+
"scenarioStepper.initialRiskStep.consequenceSubtitle": "Hvor alvorlig er den potensielle konsekvensen? Hvis konsekvensen gjelder flere kategorier velg det h\xF8yeste konsekvensniv\xE5et av disse.",
|
|
370
|
+
"scenarioStepper.initialRiskStep.probabilitySubtitle": "Hvor stor sannsynlighet er det for at dette scenarioet vil forekomme. Dersom du er mellom to sannsynlighetsverdier velg den h\xF8yeste.",
|
|
371
|
+
"scenarioStepper.restRiskStep.title": "Restrisiko",
|
|
372
|
+
"scenarioStepper.restRiskStep.subtitle": "Hvordan endrer risikoen seg fra startrisikoen etter alle tiltakene er fullf\xF8rt?",
|
|
373
|
+
"scenarioStepper.restRiskStep.consequenceSubtitle": "Hva blir konsekvensen etter alle tiltakene er fullf\xF8rt?",
|
|
374
|
+
"scenarioStepper.restRiskStep.probabilitySubtitle": "Hva blir sannsynligheten etter alle tiltakene er fullf\xF8rt?",
|
|
375
|
+
"scenarioDrawer.title": "Risikoscenario",
|
|
376
|
+
"scenarioDrawer.titleError": "Scenarioet m\xE5 ha en tittel",
|
|
377
|
+
"scenarioDrawer.subtitle": "En u\xF8nsket hendelse som potensielt kan ramme komponenten",
|
|
378
|
+
"scenarioDrawer.threatActorSubtitle": "Noen som pr\xF8ver \xE5 f\xE5 tilgang til eller misbruke systemet",
|
|
379
|
+
"scenarioDrawer.vulnerabilitySubtitle": "Svakhet i systemet som kan utnyttes av trusselakt\xF8ren",
|
|
380
|
+
"scenarioDrawer.consequenceTab.subtitle": "Hvor alvorlig er den potensielle konsekvensen? Hvis scenarioet kan f\xE5 konsekvenser i flere kategorier velg det h\xF8yeste konsekvensniv\xE5et av disse.",
|
|
381
|
+
"scenarioDrawer.probabilityTab.subtitle": "Hvor stor sannsynlighet er det for at dette scenarioet vil forekomme. Dersom du er mellom to sannsynlighetsverdier velg den h\xF8yeste.",
|
|
382
|
+
"scenarioDrawer.measureTab.subtitle": "Hvilke tiltak b\xF8r gj\xF8res for \xE5 unng\xE5 scenarioet?",
|
|
383
|
+
"scenarioDrawer.measureTab.actionsTitle": "Planlagte tiltak",
|
|
384
|
+
"scenarioDrawer.measureTab.measureOwnerDescription": "De eller den som er ansvarlig for at tiltaket blir gjennomf\xF8rt",
|
|
385
|
+
"scenarioDrawer.measureTab.addMeasureButton": "Legg til tiltak",
|
|
386
|
+
"scenarioDrawer.measureTab.plannedMeasures": "Planlagte tiltak",
|
|
387
|
+
"scenarioDrawer.measureTab.existingMeasure": "Eksisterende tiltak",
|
|
388
|
+
"scenarioDrawer.measureTab.existingMeasureSubtitle": "Kort beskrivelse av relevante tiltak som allerede har blitt gjennomf\xF8rt",
|
|
389
|
+
"scenarioDrawer.restRiskTab.subtitle": "Sett restrisiko for scenarioet. Restrisiko er konsekvens og sannsynlighet for scenarioet etter at alle tiltak i listen er gjennomf\xF8rt.",
|
|
390
|
+
"scenarioDrawer.deleteScenarioButton": "Slett scenario",
|
|
391
|
+
"scenarioDrawer.deleteScenarioConfirmation": "Er du sikker p\xE5 at du vil slette scenario?",
|
|
392
|
+
"scenarioDrawer.closeConfirmation": "Vil du lagre endringene dine?",
|
|
393
|
+
"consequenceTable.rows.1": "Ubetydelig",
|
|
394
|
+
"consequenceTable.rows.2": "Liten",
|
|
395
|
+
"consequenceTable.rows.3": "Moderat",
|
|
396
|
+
"consequenceTable.rows.4": "Alvorlig",
|
|
397
|
+
"consequenceTable.rows.5": "Kritisk",
|
|
398
|
+
"consequenceTable.columns.health": "Liv og helse",
|
|
399
|
+
"consequenceTable.columns.economical": "\xD8konomisk",
|
|
400
|
+
"consequenceTable.columns.privacy": "Personvern",
|
|
401
|
+
"consequenceTable.columns.reputation": "Omd\xF8mme og tillit",
|
|
402
|
+
"consequenceTable.cells.health.1": "Liv og helse kan ikke v\xE6re mindre alvorlig enn 3",
|
|
403
|
+
"consequenceTable.cells.health.2": "Liv og helse kan ikke v\xE6re mindre alvorlig enn 3",
|
|
404
|
+
"consequenceTable.cells.health.3": "Midlertidig eller mindre alvorlige helsemessige konsekvenser",
|
|
405
|
+
"consequenceTable.cells.health.4": "Varige eller alvorlige helsemessige konsekvenser",
|
|
406
|
+
"consequenceTable.cells.health.5": "D\xF8d eller varige alvorlige helsemssige konsekvenser",
|
|
407
|
+
"consequenceTable.cells.economical.1": "Forbig\xE5ende mindre \xF8konomisk tap",
|
|
408
|
+
"consequenceTable.cells.economical.2": "Forbig\xE5ende \xF8konomisk tap",
|
|
409
|
+
"consequenceTable.cells.economical.3": "\xD8konomisk tap av noe varighet",
|
|
410
|
+
"consequenceTable.cells.economical.4": "\xD8konomisk tap av betydelig varighet for Kartverket og evt. tredjeparter",
|
|
411
|
+
"consequenceTable.cells.economical.5": "Varig og alvorlig \xF8konomisk tap",
|
|
412
|
+
"consequenceTable.cells.privacy.1": "Retten til personvern utfordres i en sv\xE6rt kort periode og involverer ikke s\xE6rlige kategorier/s\xE5rbare grupper",
|
|
413
|
+
"consequenceTable.cells.privacy.2": "Retten til personvern krenkes i en lengre periode eller involverer s\xE6rlige kategorier/s\xE5rbare grupper",
|
|
414
|
+
"consequenceTable.cells.privacy.3": "Retten til personvern krenkes alvorlig i en lengre periode og involverer s\xE6rlige kategorier/s\xE5rbare grupper",
|
|
415
|
+
"consequenceTable.cells.privacy.4": "Retten til personvern krenkes p\xE5 en sv\xE6rt alvorlig m\xE5te",
|
|
416
|
+
"consequenceTable.cells.privacy.5": "Personvern kan ikke v\xE6re mer alvorlig enn 4",
|
|
417
|
+
"consequenceTable.cells.reputation.1": "Midlertidig omd\xF8mmetap og liten innvirkning p\xE5 tillit",
|
|
418
|
+
"consequenceTable.cells.reputation.2": "Negative saker i nasjonale medier som kan redusere tillit",
|
|
419
|
+
"consequenceTable.cells.reputation.3": "Varig negativ oppmerksomhet i nasjonale og internasjonale medier som kan redusere tillit",
|
|
420
|
+
"consequenceTable.cells.reputation.4": "Omd\xF8mme og tillit kan ikke v\xE6re mer alvorlig enn 3",
|
|
421
|
+
"consequenceTable.cells.reputation.5": "Omd\xF8mme og tillit kan ikke v\xE6re mer alvorlig enn 3",
|
|
422
|
+
"probabilityTable.rows.1": "Sv\xE6rt liten",
|
|
423
|
+
"probabilityTable.rows.2": "Liten",
|
|
424
|
+
"probabilityTable.rows.3": "Moderat",
|
|
425
|
+
"probabilityTable.rows.4": "Stor",
|
|
426
|
+
"probabilityTable.rows.5": "Sv\xE6rt stor",
|
|
427
|
+
"probabilityTable.cells.1": "Scenarioet er usannsynlig \xE5 inntreffe. Det inntreffer sjeldnere enn hvert 100. \xE5r",
|
|
428
|
+
"probabilityTable.cells.2": "Scenarioet er lite sannsynlig \xE5 inntreffe. Det kan inntreffe hvert 10. \xE5r",
|
|
429
|
+
"probabilityTable.cells.3": "Scenarioet kan inntreffe. Det kan inntreffe n\xE6rmest \xE5rlig",
|
|
430
|
+
"probabilityTable.cells.4": "Scenarioet vil med stor sannsynlighet inntreffe. Det kan inntreffe n\xE6rmest ukentlig",
|
|
431
|
+
"probabilityTable.cells.5": "Scenarioet er nesten garantert \xE5 inntreffe. Det kan inntreffe n\xE6rmest daglig"
|
|
432
|
+
}
|
|
433
|
+
})
|
|
434
|
+
}
|
|
435
|
+
});
|
|
436
|
+
|
|
437
|
+
export { RiScPage as R, riScPlugin as a, pluginRiScNorwegianTranslation as b, pluginRiScTranslationRef as p, riScRouteRef as r, scenarioRouteRef as s };
|
|
438
|
+
//# sourceMappingURL=index-c43b6519.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-c43b6519.esm.js","sources":["../../src/routes.ts","../../src/plugin.ts","../../src/components/utils/translations.ts"],"sourcesContent":["import { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'riSc',\n});\n\nexport const scenarioRouteRef = createSubRouteRef({\n id: 'scenarioId',\n parent: rootRouteRef,\n path: '/:riScId/:scenarioId',\n});\n\nexport const riScRouteRef = createSubRouteRef({\n id: 'riScId',\n parent: rootRouteRef,\n path: '/:riScId',\n});\n","import {\n createPlugin,\n createRoutableExtension,\n} from '@backstage/core-plugin-api';\n\nimport { rootRouteRef, riScRouteRef, scenarioRouteRef } from './routes';\n\nexport const riScPlugin = createPlugin({\n id: 'riSc',\n routes: {\n root: rootRouteRef,\n scenario: scenarioRouteRef,\n riSc: riScRouteRef,\n },\n});\n\nexport const RiScPage = riScPlugin.provide(\n createRoutableExtension({\n name: 'RiScPage',\n component: () => import('./components/riScPlugin').then(m => m.RiScPlugin),\n mountPoint: rootRouteRef,\n }),\n);\n","import {\n createTranslationRef,\n createTranslationResource,\n} from '@backstage/core-plugin-api/alpha';\n\nexport const pluginRiScTranslationRef = createTranslationRef({\n id: 'plugin.riSc',\n messages: {\n contentHeader: {\n title: 'Risk scorecard',\n createNewButton: 'Create new scorecard',\n },\n dictionary: {\n cancel: 'Cancel',\n close: 'Close',\n completed: 'Completed',\n confirm: 'Confirm',\n consequence: 'Consequence', // Severity, Impact, Effect or Consequence\n deadline: 'Deadline', // Deadline or Due date\n delete: 'Delete',\n description: 'Description',\n discardChanges: 'Discard changes',\n edit: 'Edit',\n estimatedRisk: 'Estimated risk',\n initialRisk: 'Initial risk', // Starting or Initial risk\n measure: 'Actions', // Measure, Action or Initiative\n measureOwner: 'Responsible', // Responsible? Measure owner? Initiative owner?\n next: 'Next',\n planned: 'Planned',\n previous: 'Previous',\n probability: 'Probability', // Likelihood or Probability\n restRisk: 'Remaining risk', // Residual or Remaining risk\n risk: 'Risk',\n save: 'Save',\n saveAndClose: 'Save and close',\n saveError: 'Could not save scenario. Please try again.',\n scenario: 'Scenario',\n scope: 'Scope',\n status: 'Status',\n threatActors: 'Threat actors',\n title: 'Title',\n vulnerabilities: 'Vulnerabilities',\n },\n rosStatus: {\n statusBadge: {\n missing: 'Awaiting acceptance from risk owner', // Mangler godkjenning av risikoeier\n approved: 'Accepted by risk owner', // Godkjent av risikoeier\n error: 'Failed to retrieve status', // Kunne ikke hente status\n },\n prStatus: 'Pending PR approval in Github ', // Avventer godkjenning av PR i Github\n approveButton: 'Accept risks', // Godkjenn ROS\n },\n publishDialog: {\n title: 'Accept risks', // Godkjenn ROS\n checkboxLabel:\n 'I confirm that I am the risk owner and accept the risks detailed in this risk scorecard.',\n },\n scenarioTable: {\n title: 'Risk scenarios',\n addScenarioButton: 'Add scenario',\n columns: {\n measuresCount: 'Actions',\n consequenceChar: 'C',\n probabilityChar: 'P',\n completed: 'complete',\n },\n },\n riskMatrix: {\n title: 'Risk matrix', // Risk matrix or Risk overview\n estimatedRisk: {\n title: 'Estimated risk',\n suffix: {\n thousand: '{{count}} thousand',\n million_one: '{{count}} million',\n million_other: '{{count}} million',\n billion_one: '{{count}} billion',\n billion_other: '{{count}} billion',\n trillion_one: '{{count}} trillion',\n trillion_other: '{{count}} trillion',\n },\n unit: {\n nokPerYear: 'NOK/year',\n },\n },\n tooltip: {\n title: 'Risk scenarios',\n },\n },\n infoDialog: {\n title: 'Estimated risk',\n description:\n 'The estimated risk is a calculation based on the risks the different scenarios pose. If there is a high probability that a serious consequence will occur, this could potentially become a large cost for the organization. In other words, the cost is an attempt to make the risk value more tangible and is the sum of the estimated risk for all the risk scenarios in this risk scorecard.',\n calculatedHowTitle: 'How do we calculate the estimated risk?',\n calculatedHow:\n 'Consequence is measured in cost (in NOK) per incident and probability is measured in incidents per year. ' +\n 'The estimated risk is calculated as C x P.',\n consequenceTitle: 'Consequence (NOK/incident)', // incident, event or occurrence\n probabilityTitle: 'Probability (incidents/year)',\n probabilityDescription: {\n '0': 'every 100 years', // 100 year intervals?\n '1': 'every 10 years', // 10 year intervals?\n '2': 'yearly', // almost yearly?\n '3': 'weekly',\n '4': 'daily',\n },\n example:\n 'A scenario with consequence 2 and probability 4 has an estimated risk of ' +\n '30 000 NOK/incident x 50 incidents/year = 1 500 000 NOK/year.',\n },\n rosDialog: {\n titleNew: 'New risk scorecard',\n titleEdit: 'Edit scorecard',\n titleError: 'The scorecard has to have a title',\n scopeDescription:\n 'Describe what the risk analysis will assess. Specify any key areas which are not part of the scope.',\n scopeError: 'The scorecard has to have a description of the scope',\n },\n scenarioStepper: {\n initialRiskStep: {\n title: 'Initial risk',\n subtitle:\n 'The initial risk is defined by the consequence of the scenario and the probability of it occurring.',\n consequenceSubtitle:\n 'How severe is the potential impact? If the scenario can impact more than one category, choose the highest level of consequence.',\n probabilitySubtitle:\n 'How likely is it that this scenario will occur? If you are between two probability values, choose the higher one.',\n },\n restRiskStep: {\n title: 'Remaining risk',\n subtitle:\n 'What is the risk reduced to when all the planned actions have been completed?',\n consequenceSubtitle:\n 'How severe is the consequence of this scenario after all actions are complete?',\n probabilitySubtitle:\n 'What is the likelihood of this scenario after all actions are complete?',\n },\n },\n scenarioDrawer: {\n title: 'Risk scenario',\n titleError: 'Scenario title is required',\n subtitle:\n 'An unwanted incident that could potentially harm the component.', // harm or affect negatively?\n threatActorSubtitle: 'Someone who attempts to access or abuse the system', // system or component or both?\n vulnerabilitySubtitle:\n 'Weakness in the system that the threat actor can exploit',\n consequenceTab: {\n subtitle:\n 'How severe is the potential impact? If the scenario can impact more than one category, choose the highest level of consequence.',\n },\n probabilityTab: {\n subtitle:\n 'How likely is it that this scenario will occur? If you are between two probability values, choose the higher one.',\n },\n measureTab: {\n subtitle:\n 'What actions should be taken to avoid or reduce the risk of this scenario?',\n measureOwnerDescription:\n 'Decide who will be responsible for completion of this action',\n addMeasureButton: 'Add planned action',\n actionsTitle: 'Planned actions',\n plannedMeasures: 'Planned actions',\n existingMeasure: 'Existing measures',\n existingMeasureSubtitle:\n 'Brief description of relevant measures that have already been implemented to reduce the risk of this scenario',\n },\n restRiskTab: {\n subtitle:\n 'Define the remaining risk for the scenario. Remaining risk is the consequence and probability for this ' +\n 'scenario after all planned actions have been completed.',\n },\n deleteScenarioButton: 'Delete scenario',\n deleteScenarioConfirmation:\n 'Are you sure you want to delete this scenario?',\n closeConfirmation: 'Do you want to save your changes?',\n },\n consequenceTable: {\n rows: {\n '1': 'Negligible', // Insignificant, negligible (ubetydelig)\n '2': 'Small', // Liten\n '3': 'Moderate',\n '4': 'Severe', // Alvorlig\n '5': 'Critical', // Catastrophic eller Critical\n },\n columns: {\n health: 'Life and health', // Health and safety, Life and limb, Health and lives (Liv og helse)\n economical: 'Financial', // Financial consequences, economic implications\n privacy: 'Privacy', // Personvern\n reputation: 'Reputation and trust', // Reputation and trust, confidence, faith (Omdømme og tillit)\n },\n cells: {\n health: {\n '1': 'Impact on life and health cannot be rated less severe than 3', // Liv og helse kan ikke være mindre alvorlig enn 3\n '2': 'Impact on life and health cannot be rated less severe than 3',\n '3': 'Temporary or less severe health implications', // implications, effects or consequence? Midlertidig eller mindre alvorlige helsemessige konsekvenser\n '4': 'Permanent or severe health implications', // implications, effects or consequence? Lasting or Permanent? Varige eller alvorlige helsemessige konsekvenser\n '5': 'Death or permanent severe health implications', // implications, effects or consequence? Lasting or permanent? Død eller varige alvorlige helsemssige konsekvenser\n },\n economical: {\n '1': 'Temporary minor financial loss', // TODO: Hvor kort er forbigående? Forbigående mindre økonomisk tap\n '2': 'Temporary financial loss', // Forbigående økonomisk tap\n '3': 'Financial loss of some duration', // Økonomisk tap av noe varighet\n '4': 'Financial loss of considerable duration for the organization and any third parties', // Økonomisk tap av betydelig varighet for Kartverket og evt. tredjeparter\n '5': 'Permanent and severe financial loss', // Varig og alvorlig økonomisk tap\n },\n privacy: {\n '1': 'The right to privacy is violated for a very short period and does not involve sensitive categories or vulnerable groups', //særlige kategorier = sensitive kategorier? special/particular/sensitive categories\n '2': 'The right to privacy is violated for a longer period and involves sensitive categories or vulnerable groups',\n '3': 'The right to privacy is severely violated for a longer period and involves sensitive categories or vulnerable groups',\n '4': 'The right to privacy is being violated in a very serious manner', // very severely violated?\n '5': 'Impact on privacy cannot be rated more severe than 4',\n },\n reputation: {\n '1': 'Temporary loss of reputation and little impact on trust',\n '2': 'Negative attention in national media that can reduce trust', // articles, news, items, publicity, mentions, attention?\n '3': 'Lasting negative attention in national and international media that can reduce trust',\n '4': 'Impact on reputation and trust cannot be rated more severe than 3',\n '5': 'Impact on reputation and trust cannot be rated more severe than 3',\n },\n },\n },\n probabilityTable: {\n rows: {\n '1': 'Very low', // svært liten\n '2': 'Low', // liten\n '3': 'Moderat', // moderat\n '4': 'High', // stor\n '5': 'Very high', // svært stor\n },\n cells: {\n '1': 'The scenario is unlikely to occur. It occurs less often than every 100 years',\n '2': 'The scenario is unlikely to occur. It can occur every 10 years',\n '3': 'The scenario can occur. It can occur almost every year',\n '4': 'The scenario will very likely occur. It can occur almost weekly',\n '5': 'The scenario is almost guaranteed to occur. It can occur almost daily',\n },\n },\n },\n});\n\nexport const pluginRiScNorwegianTranslation = createTranslationResource({\n ref: pluginRiScTranslationRef,\n translations: {\n no: () =>\n Promise.resolve({\n default: {\n 'contentHeader.title': 'Risiko- og sårbarhetsanalyse',\n 'contentHeader.createNewButton': 'Opprett ny analyse',\n\n 'dictionary.cancel': 'Avbryt',\n 'dictionary.close': 'Lukk',\n 'dictionary.completed': 'Fullført',\n 'dictionary.confirm': 'Bekreft',\n 'dictionary.consequence': 'Konsekvens',\n 'dictionary.deadline': 'Frist',\n 'dictionary.delete': 'Slett',\n 'dictionary.description': 'Beskrivelse',\n 'dictionary.discardChanges': 'Forkast endringer',\n 'dictionary.edit': 'Rediger',\n 'dictionary.estimatedRisk': 'Estimert risiko',\n 'dictionary.initialRisk': 'Startrisiko',\n 'dictionary.measure': 'Tiltak',\n 'dictionary.measureOwner': 'Tiltakseier',\n 'dictionary.next': 'Neste',\n 'dictionary.planned': 'Planlagt',\n 'dictionary.previous': 'Forrige',\n 'dictionary.probability': 'Sannsynlighet',\n 'dictionary.restRisk': 'Restrisiko',\n 'dictionary.risk': 'Risiko',\n 'dictionary.save': 'Lagre',\n 'dictionary.saveAndClose': 'Lagre og lukk',\n 'dictionary.saveError':\n 'Noe gikk galt ved lagring. Venligst prøv igjen.',\n 'dictionary.scenario': 'Scenario',\n 'dictionary.scope': 'Omfang',\n 'dictionary.status': 'Status',\n 'dictionary.threatActors': 'Trusselaktører',\n 'dictionary.title': 'Tittel',\n 'dictionary.vulnerabilities': 'Sårbarheter',\n\n 'rosStatus.statusBadge.missing':\n 'Venter på godkjenning av risikoeier',\n 'rosStatus.statusBadge.approved': 'Godkjent av risikoeier',\n 'rosStatus.statusBadge.error': 'Kunne ikke hente status',\n 'rosStatus.prStatus': 'Avventer godkjenning av PR i Github',\n 'rosStatus.approveButton': 'Godkjenn ROS',\n\n 'publishDialog.title': 'Godkjenn ROS-analyse',\n 'publishDialog.checkboxLabel':\n 'Jeg bekrefter at jeg er risikoeier og godtar risikoen beskrevet i denne risiko- og sårbarhetsanalysen.',\n\n 'scenarioTable.title': 'Risikoscenarioer',\n 'scenarioTable.addScenarioButton': 'Legg til scenario',\n 'scenarioTable.columns.measuresCount': 'Tiltak',\n 'scenarioTable.columns.consequenceChar': 'K',\n 'scenarioTable.columns.probabilityChar': 'S',\n 'scenarioTable.columns.completed': 'fullført',\n\n 'riskMatrix.title': 'Risikomatrise',\n 'riskMatrix.estimatedRisk.title': 'Estimert risiko',\n 'riskMatrix.estimatedRisk.suffix.thousand': '{{count}} tusen',\n 'riskMatrix.estimatedRisk.suffix.million_one': '{{count}} million',\n 'riskMatrix.estimatedRisk.suffix.million_other':\n '{{count}} millioner',\n 'riskMatrix.estimatedRisk.suffix.billion_one': '{{count}} milliard',\n 'riskMatrix.estimatedRisk.suffix.billion_other':\n '{{count}} milliarder',\n 'riskMatrix.estimatedRisk.suffix.trillion_one': '{{count}} billion',\n 'riskMatrix.estimatedRisk.suffix.trillion_other':\n '{{count}} billioner',\n 'riskMatrix.estimatedRisk.unit.nokPerYear': 'kr/år',\n 'riskMatrix.tooltip.title': 'Risikoscenarioer',\n\n 'infoDialog.title': 'Estimert risiko',\n 'infoDialog.description':\n 'Den estimerte risikoen er basert på hvor stor risiko de forskjellige scenariene utgjør. Hvis det er stor sannsynlighet for at en alvorlig konsekvens skjer er det høy risiko for at det kan bli en stor kostnad for Kartverket. Kostnaden er med andre ord et forsøk på å konkretisere verdien av risiko og er summen av den estimerte risikoen for alle risikoscenariene i denne ROS-analysen.',\n 'infoDialog.calculatedHowTitle':\n 'Hvordan regner vi ut estimert risiko?',\n 'infoDialog.calculatedHow':\n 'Konsekvens måles i kroner per hendelse og sannsynlighet måles i hendelser per år. Den estimerte risikoen blir da: K x S.',\n 'infoDialog.consequenceTitle': 'Konsekvens (kr/hendelse)',\n 'infoDialog.probabilityTitle': 'Sannsynlighet (hendelser/år)',\n 'infoDialog.probabilityDescription.0': 'ca hvert 100. år',\n 'infoDialog.probabilityDescription.1': 'ca hvert 10. år',\n 'infoDialog.probabilityDescription.2': 'ca årlig',\n 'infoDialog.probabilityDescription.3': 'ca ukentlig',\n 'infoDialog.probabilityDescription.4': 'ca daglig',\n 'infoDialog.example':\n 'Et risikoscenario med konsekvens 2 og sannsynlighet 4 har en estimert risiko på 30 000 kr/hendelse x 50 hendelser/år = 1 500 000 kr/år.',\n\n 'rosDialog.titleNew': 'Ny risiko- og sårbarhetsanalyse',\n 'rosDialog.titleEdit': 'Rediger tittel og omfang',\n 'rosDialog.titleError': 'ROS-analysen må ha en tittel',\n 'rosDialog.scopeDescription':\n 'Beskriv hva analysen skal vurdere. Hva som ikke inngår som en del av omfanget må også defineres.', //TODO\n 'rosDialog.scopeError': 'ROS-analysen må ha et omfang',\n\n 'scenarioStepper.initialRiskStep.title': 'Startrisiko',\n 'scenarioStepper.initialRiskStep.subtitle':\n 'Risikoen er kombinasjonen av konsekvensen av scenarioet og sannsynligheten for at det inntreffer.',\n 'scenarioStepper.initialRiskStep.consequenceSubtitle':\n 'Hvor alvorlig er den potensielle konsekvensen? Hvis konsekvensen gjelder flere kategorier velg det høyeste konsekvensnivået av disse.',\n 'scenarioStepper.initialRiskStep.probabilitySubtitle':\n 'Hvor stor sannsynlighet er det for at dette scenarioet vil forekomme. Dersom du er mellom to sannsynlighetsverdier velg den høyeste.',\n 'scenarioStepper.restRiskStep.title': 'Restrisiko',\n 'scenarioStepper.restRiskStep.subtitle':\n 'Hvordan endrer risikoen seg fra startrisikoen etter alle tiltakene er fullført?',\n 'scenarioStepper.restRiskStep.consequenceSubtitle':\n 'Hva blir konsekvensen etter alle tiltakene er fullført?',\n 'scenarioStepper.restRiskStep.probabilitySubtitle':\n 'Hva blir sannsynligheten etter alle tiltakene er fullført?',\n\n 'scenarioDrawer.title': 'Risikoscenario',\n 'scenarioDrawer.titleError': 'Scenarioet må ha en tittel',\n 'scenarioDrawer.subtitle':\n 'En uønsket hendelse som potensielt kan ramme komponenten',\n 'scenarioDrawer.threatActorSubtitle':\n 'Noen som prøver å få tilgang til eller misbruke systemet',\n 'scenarioDrawer.vulnerabilitySubtitle':\n 'Svakhet i systemet som kan utnyttes av trusselaktøren',\n 'scenarioDrawer.consequenceTab.subtitle':\n 'Hvor alvorlig er den potensielle konsekvensen? Hvis scenarioet kan få konsekvenser i flere kategorier velg det høyeste konsekvensnivået av disse.',\n 'scenarioDrawer.probabilityTab.subtitle':\n 'Hvor stor sannsynlighet er det for at dette scenarioet vil forekomme. Dersom du er mellom to sannsynlighetsverdier velg den høyeste.',\n 'scenarioDrawer.measureTab.subtitle':\n 'Hvilke tiltak bør gjøres for å unngå scenarioet?',\n 'scenarioDrawer.measureTab.actionsTitle': 'Planlagte tiltak',\n 'scenarioDrawer.measureTab.measureOwnerDescription':\n 'De eller den som er ansvarlig for at tiltaket blir gjennomført',\n 'scenarioDrawer.measureTab.addMeasureButton': 'Legg til tiltak',\n 'scenarioDrawer.measureTab.plannedMeasures': 'Planlagte tiltak',\n 'scenarioDrawer.measureTab.existingMeasure': 'Eksisterende tiltak',\n 'scenarioDrawer.measureTab.existingMeasureSubtitle':\n 'Kort beskrivelse av relevante tiltak som allerede har blitt gjennomført',\n 'scenarioDrawer.restRiskTab.subtitle':\n 'Sett restrisiko for scenarioet. Restrisiko er konsekvens og sannsynlighet for scenarioet etter at alle tiltak i listen er gjennomført.',\n 'scenarioDrawer.deleteScenarioButton': 'Slett scenario',\n 'scenarioDrawer.deleteScenarioConfirmation':\n 'Er du sikker på at du vil slette scenario?',\n 'scenarioDrawer.closeConfirmation': 'Vil du lagre endringene dine?',\n\n 'consequenceTable.rows.1': 'Ubetydelig',\n 'consequenceTable.rows.2': 'Liten',\n 'consequenceTable.rows.3': 'Moderat',\n 'consequenceTable.rows.4': 'Alvorlig',\n 'consequenceTable.rows.5': 'Kritisk',\n 'consequenceTable.columns.health': 'Liv og helse',\n 'consequenceTable.columns.economical': 'Økonomisk',\n 'consequenceTable.columns.privacy': 'Personvern',\n 'consequenceTable.columns.reputation': 'Omdømme og tillit',\n 'consequenceTable.cells.health.1':\n 'Liv og helse kan ikke være mindre alvorlig enn 3',\n 'consequenceTable.cells.health.2':\n 'Liv og helse kan ikke være mindre alvorlig enn 3',\n 'consequenceTable.cells.health.3':\n 'Midlertidig eller mindre alvorlige helsemessige konsekvenser',\n 'consequenceTable.cells.health.4':\n 'Varige eller alvorlige helsemessige konsekvenser',\n 'consequenceTable.cells.health.5':\n 'Død eller varige alvorlige helsemssige konsekvenser',\n 'consequenceTable.cells.economical.1':\n 'Forbigående mindre økonomisk tap',\n 'consequenceTable.cells.economical.2': 'Forbigående økonomisk tap',\n 'consequenceTable.cells.economical.3':\n 'Økonomisk tap av noe varighet',\n 'consequenceTable.cells.economical.4':\n 'Økonomisk tap av betydelig varighet for Kartverket og evt. tredjeparter',\n 'consequenceTable.cells.economical.5':\n 'Varig og alvorlig økonomisk tap',\n 'consequenceTable.cells.privacy.1':\n 'Retten til personvern utfordres i en svært kort periode og involverer ikke særlige kategorier/sårbare grupper',\n 'consequenceTable.cells.privacy.2':\n 'Retten til personvern krenkes i en lengre periode eller involverer særlige kategorier/sårbare grupper',\n 'consequenceTable.cells.privacy.3':\n 'Retten til personvern krenkes alvorlig i en lengre periode og involverer særlige kategorier/sårbare grupper',\n 'consequenceTable.cells.privacy.4':\n 'Retten til personvern krenkes på en svært alvorlig måte',\n 'consequenceTable.cells.privacy.5':\n 'Personvern kan ikke være mer alvorlig enn 4',\n 'consequenceTable.cells.reputation.1':\n 'Midlertidig omdømmetap og liten innvirkning på tillit',\n 'consequenceTable.cells.reputation.2':\n 'Negative saker i nasjonale medier som kan redusere tillit',\n 'consequenceTable.cells.reputation.3':\n 'Varig negativ oppmerksomhet i nasjonale og internasjonale medier som kan redusere tillit',\n 'consequenceTable.cells.reputation.4':\n 'Omdømme og tillit kan ikke være mer alvorlig enn 3',\n 'consequenceTable.cells.reputation.5':\n 'Omdømme og tillit kan ikke være mer alvorlig enn 3',\n\n 'probabilityTable.rows.1': 'Svært liten',\n 'probabilityTable.rows.2': 'Liten',\n 'probabilityTable.rows.3': 'Moderat',\n 'probabilityTable.rows.4': 'Stor',\n 'probabilityTable.rows.5': 'Svært stor',\n 'probabilityTable.cells.1':\n 'Scenarioet er usannsynlig å inntreffe. Det inntreffer sjeldnere enn hvert 100. år',\n 'probabilityTable.cells.2':\n 'Scenarioet er lite sannsynlig å inntreffe. Det kan inntreffe hvert 10. år',\n 'probabilityTable.cells.3':\n 'Scenarioet kan inntreffe. Det kan inntreffe nærmest årlig',\n 'probabilityTable.cells.4':\n 'Scenarioet vil med stor sannsynlighet inntreffe. Det kan inntreffe nærmest ukentlig',\n 'probabilityTable.cells.5':\n 'Scenarioet er nesten garantert å inntreffe. Det kan inntreffe nærmest daglig',\n },\n }),\n },\n});\n"],"names":[],"mappings":"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"}
|