@shiftleftpt/sbd-toe-mcp 0.20.0-beta.43 → 0.20.0-beta.45

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.
Files changed (32) hide show
  1. package/consumed-bundle.json +10 -10
  2. package/data/entities/proportionality.json +3 -3
  3. package/data/entities/sdlc_integration.json +885 -4
  4. package/data/publish/indexes/canonical_chunks.jsonl +4907 -4907
  5. package/data/publish/indexes/mcp_chunks.jsonl +38 -38
  6. package/data/publish/indexes/publication_manifest.json +3 -3
  7. package/data/publish/ontology/sbdtoe-ontology.yaml +20 -5
  8. package/data/publish/runtime/assignments.json +2034 -376
  9. package/data/publish/runtime/decision_involvements.json +2228 -0
  10. package/data/publish/runtime/deterministic_manifest.json +3 -3
  11. package/data/publish/runtime/phases.json +8 -6
  12. package/data/publish/runtime/user_stories.json +54 -27
  13. package/data/publish/runtime/v1/manual_maturity_progression.jsonl +336 -336
  14. package/data/publish/runtime/v1/manual_rastreabilidade.jsonl +1105 -1105
  15. package/data/publish/runtime/v1/manual_threat_mitigation.jsonl +523 -523
  16. package/data/publish/runtime/v1/v1_manifest.json +5 -5
  17. package/data/publish/semantic/macro_processes.jsonl +1 -1
  18. package/data/publish/semantic/mp_edges.jsonl +1 -1
  19. package/data/reports/run_manifest.json +8 -8
  20. package/dist/serving/agent-guide.js +9 -0
  21. package/dist/serving/agent-guide.js.map +1 -1
  22. package/dist/serving/declared-absences.d.ts +16 -0
  23. package/dist/serving/declared-absences.js +17 -2
  24. package/dist/serving/declared-absences.js.map +1 -1
  25. package/dist/tools/get-guide-by-role.js +51 -1
  26. package/dist/tools/get-guide-by-role.js.map +1 -1
  27. package/dist/tools/ontology-loader.d.ts +20 -0
  28. package/dist/tools/ontology-loader.js +18 -0
  29. package/dist/tools/ontology-loader.js.map +1 -1
  30. package/dist/tools/plan-rollout.js +33 -3
  31. package/dist/tools/plan-rollout.js.map +1 -1
  32. package/package.json +1 -1
@@ -0,0 +1,2228 @@
1
+ {
2
+ "artifact_type": "deterministic_runtime_snapshot",
3
+ "count": 164,
4
+ "entity_type": "DecisionInvolvement",
5
+ "items": [
6
+ {
7
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:36",
8
+ "anchor_text": "| **AppSec Engineer** | Validar modelo aplicado; ajustar nível (especialmente em L2/L3); mapear ameaças; parametrizar cadência; aprovar classificações |",
9
+ "applicable_levels": {
10
+ "L1": false,
11
+ "L2": true,
12
+ "L3": true
13
+ },
14
+ "bundle_id": "01-classificacao-aplicacoes",
15
+ "involvement_id": "DI-01-0036-appsec-engineer",
16
+ "kind": "approves",
17
+ "refs": [],
18
+ "role_canonical": true,
19
+ "role_id": "appsec-engineer",
20
+ "source_mode": "derived"
21
+ },
22
+ {
23
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:38",
24
+ "anchor_text": "| **Product Owner** | Notificado de alterações de nível (especialmente L1→L3); aprovar impacto de negócio de exceções |",
25
+ "applicable_levels": {
26
+ "L1": true,
27
+ "L2": false,
28
+ "L3": true
29
+ },
30
+ "bundle_id": "01-classificacao-aplicacoes",
31
+ "involvement_id": "DI-01-0038-product-owner",
32
+ "kind": "approves",
33
+ "refs": [],
34
+ "role_canonical": true,
35
+ "role_id": "product-owner",
36
+ "source_mode": "derived"
37
+ },
38
+ {
39
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:42",
40
+ "anchor_text": "| **Gestão Executiva / CISO** | Aprovar políticas de classificação e aceitação de risco; supervisionar exceções em L3 |",
41
+ "applicable_levels": {
42
+ "L1": false,
43
+ "L2": false,
44
+ "L3": true
45
+ },
46
+ "bundle_id": "01-classificacao-aplicacoes",
47
+ "involvement_id": "DI-01-0042-gestao-executiva",
48
+ "kind": "approves",
49
+ "refs": [],
50
+ "role_canonical": true,
51
+ "role_id": "gestao-executiva",
52
+ "source_mode": "derived"
53
+ },
54
+ {
55
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:69",
56
+ "anchor_text": "- [ ] **Em L2/L3: Aprovação formal por AppSec Engineer documentada**",
57
+ "applicable_levels": {
58
+ "L1": false,
59
+ "L2": true,
60
+ "L3": true
61
+ },
62
+ "bundle_id": "01-classificacao-aplicacoes",
63
+ "involvement_id": "DI-01-0069-appsec-engineer",
64
+ "kind": "approves",
65
+ "refs": [],
66
+ "role_canonical": true,
67
+ "role_id": "appsec-engineer",
68
+ "source_mode": "derived"
69
+ },
70
+ {
71
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:70",
72
+ "anchor_text": "- [ ] **Product Owner notificado se classificação for L3**",
73
+ "applicable_levels": {
74
+ "L1": false,
75
+ "L2": false,
76
+ "L3": true
77
+ },
78
+ "bundle_id": "01-classificacao-aplicacoes",
79
+ "involvement_id": "DI-01-0070-product-owner",
80
+ "kind": "consulted",
81
+ "refs": [],
82
+ "role_canonical": true,
83
+ "role_id": "product-owner",
84
+ "source_mode": "derived"
85
+ },
86
+ {
87
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:75",
88
+ "anchor_text": "- [ ] Aprovação final por AppSec Engineer com registo explícito",
89
+ "applicable_levels": null,
90
+ "bundle_id": "01-classificacao-aplicacoes",
91
+ "involvement_id": "DI-01-0075-appsec-engineer",
92
+ "kind": "approves",
93
+ "refs": [],
94
+ "role_canonical": true,
95
+ "role_id": "appsec-engineer",
96
+ "source_mode": "derived"
97
+ },
98
+ {
99
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:89",
100
+ "anchor_text": "| L2 | Sim | Classificação completa com **validação formal por AppSec Engineer** |",
101
+ "applicable_levels": {
102
+ "L1": false,
103
+ "L2": true,
104
+ "L3": false
105
+ },
106
+ "bundle_id": "01-classificacao-aplicacoes",
107
+ "involvement_id": "DI-01-0089-appsec-engineer",
108
+ "kind": "approves",
109
+ "refs": [],
110
+ "role_canonical": true,
111
+ "role_id": "appsec-engineer",
112
+ "source_mode": "derived"
113
+ },
114
+ {
115
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:90",
116
+ "anchor_text": "| L3 | Sim | Classificação formal, **validada e aprovada por AppSec Engineer + GRC/Compliance** |",
117
+ "applicable_levels": {
118
+ "L1": false,
119
+ "L2": false,
120
+ "L3": true
121
+ },
122
+ "bundle_id": "01-classificacao-aplicacoes",
123
+ "involvement_id": "DI-01-0090-appsec-engineer",
124
+ "kind": "approves",
125
+ "refs": [],
126
+ "role_canonical": true,
127
+ "role_id": "appsec-engineer",
128
+ "source_mode": "derived"
129
+ },
130
+ {
131
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:90",
132
+ "anchor_text": "| L3 | Sim | Classificação formal, **validada e aprovada por AppSec Engineer + GRC/Compliance** |",
133
+ "applicable_levels": {
134
+ "L1": false,
135
+ "L2": false,
136
+ "L3": true
137
+ },
138
+ "bundle_id": "01-classificacao-aplicacoes",
139
+ "involvement_id": "DI-01-0090-grc-compliance",
140
+ "kind": "approves",
141
+ "refs": [],
142
+ "role_canonical": true,
143
+ "role_id": "grc-compliance",
144
+ "source_mode": "derived"
145
+ },
146
+ {
147
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:96",
148
+ "anchor_text": "| Arquitetura | Revisão de design inicial | **Developer + Arquitetos de Software + AppSec Engineer** | Antes da aprovação de arquitetura |",
149
+ "applicable_levels": null,
150
+ "bundle_id": "01-classificacao-aplicacoes",
151
+ "involvement_id": "DI-01-0096-appsec-engineer",
152
+ "kind": "approves",
153
+ "refs": [],
154
+ "role_canonical": true,
155
+ "role_id": "appsec-engineer",
156
+ "source_mode": "derived"
157
+ },
158
+ {
159
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:96",
160
+ "anchor_text": "| Arquitetura | Revisão de design inicial | **Developer + Arquitetos de Software + AppSec Engineer** | Antes da aprovação de arquitetura |",
161
+ "applicable_levels": null,
162
+ "bundle_id": "01-classificacao-aplicacoes",
163
+ "involvement_id": "DI-01-0096-arquitetos-software",
164
+ "kind": "approves",
165
+ "refs": [],
166
+ "role_canonical": true,
167
+ "role_id": "arquitetos-software",
168
+ "source_mode": "derived"
169
+ },
170
+ {
171
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:96",
172
+ "anchor_text": "| Arquitetura | Revisão de design inicial | **Developer + Arquitetos de Software + AppSec Engineer** | Antes da aprovação de arquitetura |",
173
+ "applicable_levels": null,
174
+ "bundle_id": "01-classificacao-aplicacoes",
175
+ "involvement_id": "DI-01-0096-developer",
176
+ "kind": "approves",
177
+ "refs": [],
178
+ "role_canonical": true,
179
+ "role_id": "developer",
180
+ "source_mode": "derived"
181
+ },
182
+ {
183
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:124",
184
+ "anchor_text": "- [ ] Exceções documentadas, aprovadas por AppSec Engineer com justificação técnica",
185
+ "applicable_levels": null,
186
+ "bundle_id": "01-classificacao-aplicacoes",
187
+ "involvement_id": "DI-01-0124-appsec-engineer",
188
+ "kind": "approves",
189
+ "refs": [],
190
+ "role_canonical": true,
191
+ "role_id": "appsec-engineer",
192
+ "source_mode": "derived"
193
+ },
194
+ {
195
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:138",
196
+ "anchor_text": "| L3 | Sim | Controlos completos + reforçados + validação por AppSec |",
197
+ "applicable_levels": {
198
+ "L1": false,
199
+ "L2": false,
200
+ "L3": true
201
+ },
202
+ "bundle_id": "01-classificacao-aplicacoes",
203
+ "involvement_id": "DI-01-0138-appsec-engineer",
204
+ "kind": "approves",
205
+ "refs": [],
206
+ "role_canonical": true,
207
+ "role_id": "appsec-engineer",
208
+ "source_mode": "derived"
209
+ },
210
+ {
211
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:171",
212
+ "anchor_text": "- [ ] **Product Owner notificado se houver impacto de negócio** (especialmente em escalação L1→L3)",
213
+ "applicable_levels": {
214
+ "L1": true,
215
+ "L2": false,
216
+ "L3": true
217
+ },
218
+ "bundle_id": "01-classificacao-aplicacoes",
219
+ "involvement_id": "DI-01-0171-product-owner",
220
+ "kind": "consulted",
221
+ "refs": [],
222
+ "role_canonical": true,
223
+ "role_id": "product-owner",
224
+ "source_mode": "derived"
225
+ },
226
+ {
227
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:224",
228
+ "anchor_text": "- [ ] **Aprovação formal por AppSec Engineer documentada**",
229
+ "applicable_levels": null,
230
+ "bundle_id": "01-classificacao-aplicacoes",
231
+ "involvement_id": "DI-01-0224-appsec-engineer",
232
+ "kind": "approves",
233
+ "refs": [],
234
+ "role_canonical": true,
235
+ "role_id": "appsec-engineer",
236
+ "source_mode": "derived"
237
+ },
238
+ {
239
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:225",
240
+ "anchor_text": "- [ ] **Em L3: aprovação adicional por Gestão Executiva/CISO**",
241
+ "applicable_levels": {
242
+ "L1": false,
243
+ "L2": false,
244
+ "L3": true
245
+ },
246
+ "bundle_id": "01-classificacao-aplicacoes",
247
+ "involvement_id": "DI-01-0225-gestao-executiva",
248
+ "kind": "approves",
249
+ "refs": [],
250
+ "role_canonical": true,
251
+ "role_id": "gestao-executiva",
252
+ "source_mode": "derived"
253
+ },
254
+ {
255
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:272",
256
+ "anchor_text": "- [ ] **Aprovação formal de AppSec Engineer registada**",
257
+ "applicable_levels": null,
258
+ "bundle_id": "01-classificacao-aplicacoes",
259
+ "involvement_id": "DI-01-0272-appsec-engineer",
260
+ "kind": "approves",
261
+ "refs": [],
262
+ "role_canonical": true,
263
+ "role_id": "appsec-engineer",
264
+ "source_mode": "derived"
265
+ },
266
+ {
267
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:273",
268
+ "anchor_text": "- [ ] **Em L3: aprovação adicional por Gestão Executiva ou CISO**",
269
+ "applicable_levels": {
270
+ "L1": false,
271
+ "L2": false,
272
+ "L3": true
273
+ },
274
+ "bundle_id": "01-classificacao-aplicacoes",
275
+ "involvement_id": "DI-01-0273-gestao-executiva",
276
+ "kind": "approves",
277
+ "refs": [],
278
+ "role_canonical": true,
279
+ "role_id": "gestao-executiva",
280
+ "source_mode": "derived"
281
+ },
282
+ {
283
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:292",
284
+ "anchor_text": "| Pré-Release | Aplicação pronta para go-live | **QA + AppSec Engineer + Gestão Executiva (L3)** | 2 dias úteis antes de deploy |",
285
+ "applicable_levels": {
286
+ "L1": false,
287
+ "L2": false,
288
+ "L3": true
289
+ },
290
+ "bundle_id": "01-classificacao-aplicacoes",
291
+ "involvement_id": "DI-01-0292-gestao-executiva",
292
+ "kind": "approves",
293
+ "refs": [],
294
+ "role_canonical": true,
295
+ "role_id": "gestao-executiva",
296
+ "source_mode": "derived"
297
+ },
298
+ {
299
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:376",
300
+ "anchor_text": "- [ ] **Product Owner notificado se houver impacto de negócio** (especialmente L1→L3)",
301
+ "applicable_levels": {
302
+ "L1": true,
303
+ "L2": false,
304
+ "L3": true
305
+ },
306
+ "bundle_id": "01-classificacao-aplicacoes",
307
+ "involvement_id": "DI-01-0376-product-owner",
308
+ "kind": "consulted",
309
+ "refs": [],
310
+ "role_canonical": true,
311
+ "role_id": "product-owner",
312
+ "source_mode": "derived"
313
+ },
314
+ {
315
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:432",
316
+ "anchor_text": "- [ ] **Em L3: aprovação adicional por Gestão Executiva/CISO antes de renovação**",
317
+ "applicable_levels": {
318
+ "L1": false,
319
+ "L2": false,
320
+ "L3": true
321
+ },
322
+ "bundle_id": "01-classificacao-aplicacoes",
323
+ "involvement_id": "DI-01-0432-gestao-executiva",
324
+ "kind": "approves",
325
+ "refs": [],
326
+ "role_canonical": true,
327
+ "role_id": "gestao-executiva",
328
+ "source_mode": "derived"
329
+ },
330
+ {
331
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:433",
332
+ "anchor_text": "- [ ] **Se biz impact relevante: Product Owner notificado e de acordo**",
333
+ "applicable_levels": null,
334
+ "bundle_id": "01-classificacao-aplicacoes",
335
+ "involvement_id": "DI-01-0433-product-owner",
336
+ "kind": "consulted",
337
+ "refs": [],
338
+ "role_canonical": true,
339
+ "role_id": "product-owner",
340
+ "source_mode": "derived"
341
+ },
342
+ {
343
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:447",
344
+ "anchor_text": "| L3 | conforme política master (Cap. 14) | Trimestral | **Obrigatório + Gestão Executiva** |",
345
+ "applicable_levels": {
346
+ "L1": false,
347
+ "L2": false,
348
+ "L3": true
349
+ },
350
+ "bundle_id": "01-classificacao-aplicacoes",
351
+ "involvement_id": "DI-01-0447-gestao-executiva",
352
+ "kind": "approves",
353
+ "refs": [],
354
+ "role_canonical": true,
355
+ "role_id": "gestao-executiva",
356
+ "source_mode": "derived"
357
+ },
358
+ {
359
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:452",
360
+ "anchor_text": "| Governação + Segurança | Decisão de aceitar risco; alerta 15d antes expiração | **GRC/Compliance (cria, registra) + AppSec Engineer (revalida, aprova) + Gestão Executiva/CISO (aprova L3) + Product Owner (notificado se impacto negócio)** |",
361
+ "applicable_levels": null,
362
+ "bundle_id": "01-classificacao-aplicacoes",
363
+ "involvement_id": "DI-01-0452-appsec-engineer",
364
+ "kind": "approves",
365
+ "refs": [],
366
+ "role_canonical": true,
367
+ "role_id": "appsec-engineer",
368
+ "source_mode": "derived"
369
+ },
370
+ {
371
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:452",
372
+ "anchor_text": "| Governação + Segurança | Decisão de aceitar risco; alerta 15d antes expiração | **GRC/Compliance (cria, registra) + AppSec Engineer (revalida, aprova) + Gestão Executiva/CISO (aprova L3) + Product Owner (notificado se impacto negócio)** |",
373
+ "applicable_levels": {
374
+ "L1": false,
375
+ "L2": false,
376
+ "L3": true
377
+ },
378
+ "bundle_id": "01-classificacao-aplicacoes",
379
+ "involvement_id": "DI-01-0452-gestao-executiva",
380
+ "kind": "approves",
381
+ "refs": [],
382
+ "role_canonical": true,
383
+ "role_id": "gestao-executiva",
384
+ "source_mode": "derived"
385
+ },
386
+ {
387
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:452",
388
+ "anchor_text": "| Governação + Segurança | Decisão de aceitar risco; alerta 15d antes expiração | **GRC/Compliance (cria, registra) + AppSec Engineer (revalida, aprova) + Gestão Executiva/CISO (aprova L3) + Product Owner (notificado se impacto negócio)** |",
389
+ "applicable_levels": null,
390
+ "bundle_id": "01-classificacao-aplicacoes",
391
+ "involvement_id": "DI-01-0452-product-owner",
392
+ "kind": "consulted",
393
+ "refs": [],
394
+ "role_canonical": true,
395
+ "role_id": "product-owner",
396
+ "source_mode": "derived"
397
+ },
398
+ {
399
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:484",
400
+ "anchor_text": "- [ ] **AppSec Engineer aprova antes do deploy**",
401
+ "applicable_levels": null,
402
+ "bundle_id": "01-classificacao-aplicacoes",
403
+ "involvement_id": "DI-01-0484-appsec-engineer",
404
+ "kind": "approves",
405
+ "refs": [],
406
+ "role_canonical": true,
407
+ "role_id": "appsec-engineer",
408
+ "source_mode": "derived"
409
+ },
410
+ {
411
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:504",
412
+ "anchor_text": "| Construção + Entrega | Criação/atualização de artefacto | **DevOps/SRE (proprietário, implementa controlos) + Arquitetos (valida alinhamento) + AppSec Engineer (aprova)** | Approval antes de deploy: 2 dias úteis |",
413
+ "applicable_levels": null,
414
+ "bundle_id": "01-classificacao-aplicacoes",
415
+ "involvement_id": "DI-01-0504-appsec-engineer",
416
+ "kind": "approves",
417
+ "refs": [],
418
+ "role_canonical": true,
419
+ "role_id": "appsec-engineer",
420
+ "source_mode": "derived"
421
+ },
422
+ {
423
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:561",
424
+ "anchor_text": "| Governação + Reporting | Fim de período (mensal/trimestral) | **GRC/Compliance (coleta dados, consolida, redige) + AppSec Engineer (valida métricas técnicas) + Gestão Executiva/CISO (aprova distribuição)** | Reporte: 10 dias úteis após fi",
425
+ "applicable_levels": null,
426
+ "bundle_id": "01-classificacao-aplicacoes",
427
+ "involvement_id": "DI-01-0561-gestao-executiva",
428
+ "kind": "approves",
429
+ "refs": [],
430
+ "role_canonical": true,
431
+ "role_id": "gestao-executiva",
432
+ "source_mode": "derived"
433
+ },
434
+ {
435
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:615",
436
+ "anchor_text": "| Governação + Conformidade | Kick-off (criação políticas), anualmente (revisão) | **Gestão Executiva/CISO (assina, aprova) + GRC/Compliance (redige, distribui, treina) + AppSec Engineer (input técnico) + Auditores Internos (valida conformi",
437
+ "applicable_levels": null,
438
+ "bundle_id": "01-classificacao-aplicacoes",
439
+ "involvement_id": "DI-01-0615-auditores",
440
+ "kind": "approves",
441
+ "refs": [],
442
+ "role_canonical": true,
443
+ "role_id": "auditores",
444
+ "source_mode": "derived"
445
+ },
446
+ {
447
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:615",
448
+ "anchor_text": "| Governação + Conformidade | Kick-off (criação políticas), anualmente (revisão) | **Gestão Executiva/CISO (assina, aprova) + GRC/Compliance (redige, distribui, treina) + AppSec Engineer (input técnico) + Auditores Internos (valida conformi",
449
+ "applicable_levels": null,
450
+ "bundle_id": "01-classificacao-aplicacoes",
451
+ "involvement_id": "DI-01-0615-gestao-executiva",
452
+ "kind": "approves",
453
+ "refs": [],
454
+ "role_canonical": true,
455
+ "role_id": "gestao-executiva",
456
+ "source_mode": "derived"
457
+ },
458
+ {
459
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:659",
460
+ "anchor_text": "| Classificação / Design | Após classificação inicial ou quando se introduz automação/assistência com impacto nos atributos | AppSec Engineer + Arquitetos de Software | Antes da aprovação de arquitetura |",
461
+ "applicable_levels": null,
462
+ "bundle_id": "01-classificacao-aplicacoes",
463
+ "involvement_id": "DI-01-0659-appsec-engineer",
464
+ "kind": "approves",
465
+ "refs": [],
466
+ "role_canonical": true,
467
+ "role_id": "appsec-engineer",
468
+ "source_mode": "derived"
469
+ },
470
+ {
471
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:659",
472
+ "anchor_text": "| Classificação / Design | Após classificação inicial ou quando se introduz automação/assistência com impacto nos atributos | AppSec Engineer + Arquitetos de Software | Antes da aprovação de arquitetura |",
473
+ "applicable_levels": null,
474
+ "bundle_id": "01-classificacao-aplicacoes",
475
+ "involvement_id": "DI-01-0659-arquitetos-software",
476
+ "kind": "approves",
477
+ "refs": [],
478
+ "role_canonical": true,
479
+ "role_id": "arquitetos-software",
480
+ "source_mode": "derived"
481
+ },
482
+ {
483
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:761",
484
+ "anchor_text": "- [ ] Aprovação registada pela autoridade proporcional ao nível: L1 Scrum Master / Team Lead, L2 AppSec Engineer, L3 CISO — datada e atribuída ao responsável",
485
+ "applicable_levels": {
486
+ "L1": false,
487
+ "L2": false,
488
+ "L3": true
489
+ },
490
+ "bundle_id": "01-classificacao-aplicacoes",
491
+ "involvement_id": "DI-01-0761-appsec-engineer",
492
+ "kind": "approves",
493
+ "refs": [],
494
+ "role_canonical": true,
495
+ "role_id": "appsec-engineer",
496
+ "source_mode": "derived"
497
+ },
498
+ {
499
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:761",
500
+ "anchor_text": "- [ ] Aprovação registada pela autoridade proporcional ao nível: L1 Scrum Master / Team Lead, L2 AppSec Engineer, L3 CISO — datada e atribuída ao responsável",
501
+ "applicable_levels": {
502
+ "L1": true,
503
+ "L2": true,
504
+ "L3": true
505
+ },
506
+ "bundle_id": "01-classificacao-aplicacoes",
507
+ "involvement_id": "DI-01-0761-gestao-executiva",
508
+ "kind": "approves",
509
+ "refs": [],
510
+ "role_canonical": true,
511
+ "role_id": "gestao-executiva",
512
+ "source_mode": "derived"
513
+ },
514
+ {
515
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:761",
516
+ "anchor_text": "- [ ] Aprovação registada pela autoridade proporcional ao nível: L1 Scrum Master / Team Lead, L2 AppSec Engineer, L3 CISO — datada e atribuída ao responsável",
517
+ "applicable_levels": {
518
+ "L1": true,
519
+ "L2": true,
520
+ "L3": true
521
+ },
522
+ "bundle_id": "01-classificacao-aplicacoes",
523
+ "involvement_id": "DI-01-0761-scrum-master",
524
+ "kind": "approves",
525
+ "refs": [],
526
+ "role_canonical": true,
527
+ "role_id": "scrum-master",
528
+ "source_mode": "derived"
529
+ },
530
+ {
531
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:772",
532
+ "anchor_text": "| Entrada no inventário; aprovação por Scrum Master / Team Lead | Inventário com audit trail; aprovação por AppSec Engineer | Inventário com rastreamento granular; aprovação por CISO/equivalente |",
533
+ "applicable_levels": null,
534
+ "bundle_id": "01-classificacao-aplicacoes",
535
+ "involvement_id": "DI-01-0772-appsec-engineer",
536
+ "kind": "approves",
537
+ "refs": [],
538
+ "role_canonical": true,
539
+ "role_id": "appsec-engineer",
540
+ "source_mode": "derived"
541
+ },
542
+ {
543
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:772",
544
+ "anchor_text": "| Entrada no inventário; aprovação por Scrum Master / Team Lead | Inventário com audit trail; aprovação por AppSec Engineer | Inventário com rastreamento granular; aprovação por CISO/equivalente |",
545
+ "applicable_levels": null,
546
+ "bundle_id": "01-classificacao-aplicacoes",
547
+ "involvement_id": "DI-01-0772-gestao-executiva",
548
+ "kind": "approves",
549
+ "refs": [],
550
+ "role_canonical": true,
551
+ "role_id": "gestao-executiva",
552
+ "source_mode": "derived"
553
+ },
554
+ {
555
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:772",
556
+ "anchor_text": "| Entrada no inventário; aprovação por Scrum Master / Team Lead | Inventário com audit trail; aprovação por AppSec Engineer | Inventário com rastreamento granular; aprovação por CISO/equivalente |",
557
+ "applicable_levels": null,
558
+ "bundle_id": "01-classificacao-aplicacoes",
559
+ "involvement_id": "DI-01-0772-scrum-master",
560
+ "kind": "approves",
561
+ "refs": [],
562
+ "role_canonical": true,
563
+ "role_id": "scrum-master",
564
+ "source_mode": "derived"
565
+ },
566
+ {
567
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:800",
568
+ "anchor_text": "| Gate 1 · Requisitos & Risco (Cap 01) | QA + AppSec Engineer | ✓ Classificação de risco atribuída (L1/L2/L3)<br/>✓ Matriz de controlos aplicáveis extraída<br/>✓ Ameaças esperadas mapeadas (STRIDE, MITRE ATT&CK)<br/>✓ Nenhuma exceção de ris",
569
+ "applicable_levels": {
570
+ "L1": true,
571
+ "L2": true,
572
+ "L3": true
573
+ },
574
+ "bundle_id": "01-classificacao-aplicacoes",
575
+ "involvement_id": "DI-01-0800-appsec-engineer",
576
+ "kind": "approves",
577
+ "refs": [],
578
+ "role_canonical": true,
579
+ "role_id": "appsec-engineer",
580
+ "source_mode": "derived"
581
+ },
582
+ {
583
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:800",
584
+ "anchor_text": "| Gate 1 · Requisitos & Risco (Cap 01) | QA + AppSec Engineer | ✓ Classificação de risco atribuída (L1/L2/L3)<br/>✓ Matriz de controlos aplicáveis extraída<br/>✓ Ameaças esperadas mapeadas (STRIDE, MITRE ATT&CK)<br/>✓ Nenhuma exceção de ris",
585
+ "applicable_levels": {
586
+ "L1": true,
587
+ "L2": true,
588
+ "L3": true
589
+ },
590
+ "bundle_id": "01-classificacao-aplicacoes",
591
+ "involvement_id": "DI-01-0800-qa",
592
+ "kind": "approves",
593
+ "refs": [],
594
+ "role_canonical": true,
595
+ "role_id": "qa",
596
+ "source_mode": "derived"
597
+ },
598
+ {
599
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:801",
600
+ "anchor_text": "| Gate 2 · Requisitos de Segurança (Cap 02) | AppSec Engineer | ✓ Requisitos funcionalidade + segurança completos<br/>✓ Gestão de exceções: todas as exceções têm aprovação + SLA<br/>✓ Rastreamento requisito ↔ teste ↔ evidência completo | Re",
601
+ "applicable_levels": null,
602
+ "bundle_id": "01-classificacao-aplicacoes",
603
+ "involvement_id": "DI-01-0801-appsec-engineer",
604
+ "kind": "approves",
605
+ "refs": [],
606
+ "role_canonical": true,
607
+ "role_id": "appsec-engineer",
608
+ "source_mode": "derived"
609
+ },
610
+ {
611
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:804",
612
+ "anchor_text": "| Gate 5 · Infraestrutura & Containers (Cap 08/09) | DevOps + Arquitetos | ✓ IaC versionado, aprovado, testado (Terraform, Helm, CloudFormation)<br/>✓ Imagens container: base segura, SBOM, scanning, assinadas<br/>✓ Policies de runtime (OPA/",
613
+ "applicable_levels": {
614
+ "L1": false,
615
+ "L2": true,
616
+ "L3": true
617
+ },
618
+ "bundle_id": "01-classificacao-aplicacoes",
619
+ "involvement_id": "DI-01-0804-devops-sre",
620
+ "kind": "approves",
621
+ "refs": [],
622
+ "role_canonical": true,
623
+ "role_id": "devops-sre",
624
+ "source_mode": "derived"
625
+ },
626
+ {
627
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:805",
628
+ "anchor_text": "| Gate 6 · Deploy & Monitorização (Cap 11/12) | DevOps + AppSec Engineer + SRE | ✓ Apenas artefactos assinados são promovidos<br/>✓ Ambiente staging validado (testes + aprovações concluídas)<br/>✓ Monitorização + alertas ativados pré-deploy",
629
+ "applicable_levels": null,
630
+ "bundle_id": "01-classificacao-aplicacoes",
631
+ "involvement_id": "DI-01-0805-appsec-engineer",
632
+ "kind": "approves",
633
+ "refs": [],
634
+ "role_canonical": true,
635
+ "role_id": "appsec-engineer",
636
+ "source_mode": "derived"
637
+ },
638
+ {
639
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:805",
640
+ "anchor_text": "| Gate 6 · Deploy & Monitorização (Cap 11/12) | DevOps + AppSec Engineer + SRE | ✓ Apenas artefactos assinados são promovidos<br/>✓ Ambiente staging validado (testes + aprovações concluídas)<br/>✓ Monitorização + alertas ativados pré-deploy",
641
+ "applicable_levels": null,
642
+ "bundle_id": "01-classificacao-aplicacoes",
643
+ "involvement_id": "DI-01-0805-devops-sre",
644
+ "kind": "approves",
645
+ "refs": [],
646
+ "role_canonical": true,
647
+ "role_id": "devops-sre",
648
+ "source_mode": "derived"
649
+ },
650
+ {
651
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:821",
652
+ "anchor_text": "| Planeamento | `matriz-controlos.md` | Developer / Scrum Master / Team Lead | Backlog / wiki | REQ-XXX referenciados (Cap. 02); aprovado AppSec |",
653
+ "applicable_levels": null,
654
+ "bundle_id": "01-classificacao-aplicacoes",
655
+ "involvement_id": "DI-01-0821-appsec-engineer",
656
+ "kind": "approves",
657
+ "refs": [],
658
+ "role_canonical": true,
659
+ "role_id": "appsec-engineer",
660
+ "source_mode": "derived"
661
+ },
662
+ {
663
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:821",
664
+ "anchor_text": "| Planeamento | `matriz-controlos.md` | Developer / Scrum Master / Team Lead | Backlog / wiki | REQ-XXX referenciados (Cap. 02); aprovado AppSec |",
665
+ "applicable_levels": null,
666
+ "bundle_id": "01-classificacao-aplicacoes",
667
+ "involvement_id": "DI-01-0821-developer",
668
+ "kind": "approves",
669
+ "refs": [],
670
+ "role_canonical": true,
671
+ "role_id": "developer",
672
+ "source_mode": "derived"
673
+ },
674
+ {
675
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:821",
676
+ "anchor_text": "| Planeamento | `matriz-controlos.md` | Developer / Scrum Master / Team Lead | Backlog / wiki | REQ-XXX referenciados (Cap. 02); aprovado AppSec |",
677
+ "applicable_levels": null,
678
+ "bundle_id": "01-classificacao-aplicacoes",
679
+ "involvement_id": "DI-01-0821-scrum-master",
680
+ "kind": "approves",
681
+ "refs": [],
682
+ "role_canonical": true,
683
+ "role_id": "scrum-master",
684
+ "source_mode": "derived"
685
+ },
686
+ {
687
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:823",
688
+ "anchor_text": "| Release | `checklist-go-live.md` | QA | Pipeline CI/CD | Aprovação formal AppSec Engineer + Gestão (L3) |",
689
+ "applicable_levels": {
690
+ "L1": false,
691
+ "L2": false,
692
+ "L3": true
693
+ },
694
+ "bundle_id": "01-classificacao-aplicacoes",
695
+ "involvement_id": "DI-01-0823-appsec-engineer",
696
+ "kind": "approves",
697
+ "refs": [],
698
+ "role_canonical": true,
699
+ "role_id": "appsec-engineer",
700
+ "source_mode": "derived"
701
+ },
702
+ {
703
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:823",
704
+ "anchor_text": "| Release | `checklist-go-live.md` | QA | Pipeline CI/CD | Aprovação formal AppSec Engineer + Gestão (L3) |",
705
+ "applicable_levels": {
706
+ "L1": false,
707
+ "L2": false,
708
+ "L3": true
709
+ },
710
+ "bundle_id": "01-classificacao-aplicacoes",
711
+ "involvement_id": "DI-01-0823-qa",
712
+ "kind": "approves",
713
+ "refs": [],
714
+ "role_canonical": true,
715
+ "role_id": "qa",
716
+ "source_mode": "derived"
717
+ },
718
+ {
719
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:824",
720
+ "anchor_text": "| Operação | `risco-residual.md` | GRC/Compliance | Ferramenta GRC / repo | Owner + TTL + critérios encerramento; aprovação |",
721
+ "applicable_levels": null,
722
+ "bundle_id": "01-classificacao-aplicacoes",
723
+ "involvement_id": "DI-01-0824-grc-compliance",
724
+ "kind": "approves",
725
+ "refs": [],
726
+ "role_canonical": true,
727
+ "role_id": "grc-compliance",
728
+ "source_mode": "derived"
729
+ },
730
+ {
731
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:827",
732
+ "anchor_text": "| Artefactos | `artefactos-tecnicos.md` | DevOps/SRE + Arquitetos | Repo `platform/docs` | Classificação por artefacto, rastreamento REQ, aprovação AppSec |",
733
+ "applicable_levels": null,
734
+ "bundle_id": "01-classificacao-aplicacoes",
735
+ "involvement_id": "DI-01-0827-appsec-engineer",
736
+ "kind": "approves",
737
+ "refs": [],
738
+ "role_canonical": true,
739
+ "role_id": "appsec-engineer",
740
+ "source_mode": "derived"
741
+ },
742
+ {
743
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:827",
744
+ "anchor_text": "| Artefactos | `artefactos-tecnicos.md` | DevOps/SRE + Arquitetos | Repo `platform/docs` | Classificação por artefacto, rastreamento REQ, aprovação AppSec |",
745
+ "applicable_levels": null,
746
+ "bundle_id": "01-classificacao-aplicacoes",
747
+ "involvement_id": "DI-01-0827-devops-sre",
748
+ "kind": "approves",
749
+ "refs": [],
750
+ "role_canonical": true,
751
+ "role_id": "devops-sre",
752
+ "source_mode": "derived"
753
+ },
754
+ {
755
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:829",
756
+ "anchor_text": "| Governação | `politicas-organizacionais.md` (4 políticas) | GRC/Compliance + AppSec | Docs / Wiki / Política | Aprovação Gestão Executiva, treinamento + attestation, auditoria |",
757
+ "applicable_levels": null,
758
+ "bundle_id": "01-classificacao-aplicacoes",
759
+ "involvement_id": "DI-01-0829-appsec-engineer",
760
+ "kind": "approves",
761
+ "refs": [],
762
+ "role_canonical": true,
763
+ "role_id": "appsec-engineer",
764
+ "source_mode": "derived"
765
+ },
766
+ {
767
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:829",
768
+ "anchor_text": "| Governação | `politicas-organizacionais.md` (4 políticas) | GRC/Compliance + AppSec | Docs / Wiki / Política | Aprovação Gestão Executiva, treinamento + attestation, auditoria |",
769
+ "applicable_levels": null,
770
+ "bundle_id": "01-classificacao-aplicacoes",
771
+ "involvement_id": "DI-01-0829-gestao-executiva",
772
+ "kind": "approves",
773
+ "refs": [],
774
+ "role_canonical": true,
775
+ "role_id": "gestao-executiva",
776
+ "source_mode": "derived"
777
+ },
778
+ {
779
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:829",
780
+ "anchor_text": "| Governação | `politicas-organizacionais.md` (4 políticas) | GRC/Compliance + AppSec | Docs / Wiki / Política | Aprovação Gestão Executiva, treinamento + attestation, auditoria |",
781
+ "applicable_levels": null,
782
+ "bundle_id": "01-classificacao-aplicacoes",
783
+ "involvement_id": "DI-01-0829-grc-compliance",
784
+ "kind": "approves",
785
+ "refs": [],
786
+ "role_canonical": true,
787
+ "role_id": "grc-compliance",
788
+ "source_mode": "derived"
789
+ },
790
+ {
791
+ "anchor": "01-classificacao-aplicacoes/aplicacao-lifecycle.md:845",
792
+ "anchor_text": "| US-05 - Validação go-live | (Rec.) | ✔ | ✔ | Aprovação AppSec + Gestão em L3 |",
793
+ "applicable_levels": {
794
+ "L1": false,
795
+ "L2": false,
796
+ "L3": true
797
+ },
798
+ "bundle_id": "01-classificacao-aplicacoes",
799
+ "involvement_id": "DI-01-0845-appsec-engineer",
800
+ "kind": "approves",
801
+ "refs": [],
802
+ "role_canonical": true,
803
+ "role_id": "appsec-engineer",
804
+ "source_mode": "derived"
805
+ },
806
+ {
807
+ "anchor": "02-requisitos-seguranca/aplicacao-lifecycle.md:63",
808
+ "anchor_text": "| AppSec Engineer | Validar aplicação; aprovar exceções; garantir alinhamento e consistência global |",
809
+ "applicable_levels": null,
810
+ "bundle_id": "02-requisitos-seguranca",
811
+ "involvement_id": "DI-02-0063-appsec-engineer",
812
+ "kind": "approves",
813
+ "refs": [],
814
+ "role_canonical": true,
815
+ "role_id": "appsec-engineer",
816
+ "source_mode": "derived"
817
+ },
818
+ {
819
+ "anchor": "02-requisitos-seguranca/aplicacao-lifecycle.md:171",
820
+ "anchor_text": "- [ ] Aprovação técnica por AppSec documentada; aprovação executiva quando aplicável em L3",
821
+ "applicable_levels": {
822
+ "L1": false,
823
+ "L2": false,
824
+ "L3": true
825
+ },
826
+ "bundle_id": "02-requisitos-seguranca",
827
+ "involvement_id": "DI-02-0171-appsec-engineer",
828
+ "kind": "approves",
829
+ "refs": [],
830
+ "role_canonical": true,
831
+ "role_id": "appsec-engineer",
832
+ "source_mode": "derived"
833
+ },
834
+ {
835
+ "anchor": "02-requisitos-seguranca/aplicacao-lifecycle.md:360",
836
+ "anchor_text": "| Release | Aprovação final | AppSec Engineer | Antes do go-live |",
837
+ "applicable_levels": null,
838
+ "bundle_id": "02-requisitos-seguranca",
839
+ "involvement_id": "DI-02-0360-appsec-engineer",
840
+ "kind": "approves",
841
+ "refs": [],
842
+ "role_canonical": true,
843
+ "role_id": "appsec-engineer",
844
+ "source_mode": "derived"
845
+ },
846
+ {
847
+ "anchor": "02-requisitos-seguranca/aplicacao-lifecycle.md:429",
848
+ "anchor_text": "- [ ] Revisão e aprovação por AppSec quando aplicável",
849
+ "applicable_levels": null,
850
+ "bundle_id": "02-requisitos-seguranca",
851
+ "involvement_id": "DI-02-0429-appsec-engineer",
852
+ "kind": "approves",
853
+ "refs": [],
854
+ "role_canonical": true,
855
+ "role_id": "appsec-engineer",
856
+ "source_mode": "derived"
857
+ },
858
+ {
859
+ "anchor": "02-requisitos-seguranca/aplicacao-lifecycle.md:636",
860
+ "anchor_text": "| L3 | Sim | Revisão + SAST/SCA + validações reforçadas e AppSec review |",
861
+ "applicable_levels": {
862
+ "L1": false,
863
+ "L2": false,
864
+ "L3": true
865
+ },
866
+ "bundle_id": "02-requisitos-seguranca",
867
+ "involvement_id": "DI-02-0636-appsec-engineer",
868
+ "kind": "approves",
869
+ "refs": [],
870
+ "role_canonical": true,
871
+ "role_id": "appsec-engineer",
872
+ "source_mode": "derived"
873
+ },
874
+ {
875
+ "anchor": "02-requisitos-seguranca/aplicacao-lifecycle.md:689",
876
+ "anchor_text": "| L1 | A1+ | *Mandate* simples; aprovação por Scrum Master / Team Lead; A2+ permitido apenas fora de produção |",
877
+ "applicable_levels": {
878
+ "L1": true,
879
+ "L2": false,
880
+ "L3": false
881
+ },
882
+ "bundle_id": "02-requisitos-seguranca",
883
+ "involvement_id": "DI-02-0689-scrum-master",
884
+ "kind": "approves",
885
+ "refs": [],
886
+ "role_canonical": true,
887
+ "role_id": "scrum-master",
888
+ "source_mode": "derived"
889
+ },
890
+ {
891
+ "anchor": "02-requisitos-seguranca/aplicacao-lifecycle.md:691",
892
+ "anchor_text": "| L3 | A1+ | *Mandate* completo + revisão organizacional trimestral; A4 exige assinatura formal do `CISO` |",
893
+ "applicable_levels": {
894
+ "L1": false,
895
+ "L2": false,
896
+ "L3": true
897
+ },
898
+ "bundle_id": "02-requisitos-seguranca",
899
+ "involvement_id": "DI-02-0691-gestao-executiva",
900
+ "kind": "approves",
901
+ "refs": [],
902
+ "role_canonical": true,
903
+ "role_id": "gestao-executiva",
904
+ "source_mode": "derived"
905
+ },
906
+ {
907
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:26",
908
+ "anchor_text": "| Release / Go-live | Confirmar ameaças abertas, exceções, risco residual e compensações | QA, AppSec Engineer, Product Owner (impacto), Scrum Master / Team Lead | Decisões (mitigar/aceitar) + evidência de aprovação |",
909
+ "applicable_levels": null,
910
+ "bundle_id": "03-threat-modeling",
911
+ "involvement_id": "DI-03-0026-appsec-engineer",
912
+ "kind": "approves",
913
+ "refs": [],
914
+ "role_canonical": true,
915
+ "role_id": "appsec-engineer",
916
+ "source_mode": "derived"
917
+ },
918
+ {
919
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:26",
920
+ "anchor_text": "| Release / Go-live | Confirmar ameaças abertas, exceções, risco residual e compensações | QA, AppSec Engineer, Product Owner (impacto), Scrum Master / Team Lead | Decisões (mitigar/aceitar) + evidência de aprovação |",
921
+ "applicable_levels": null,
922
+ "bundle_id": "03-threat-modeling",
923
+ "involvement_id": "DI-03-0026-qa",
924
+ "kind": "approves",
925
+ "refs": [],
926
+ "role_canonical": true,
927
+ "role_id": "qa",
928
+ "source_mode": "derived"
929
+ },
930
+ {
931
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:26",
932
+ "anchor_text": "| Release / Go-live | Confirmar ameaças abertas, exceções, risco residual e compensações | QA, AppSec Engineer, Product Owner (impacto), Scrum Master / Team Lead | Decisões (mitigar/aceitar) + evidência de aprovação |",
933
+ "applicable_levels": null,
934
+ "bundle_id": "03-threat-modeling",
935
+ "involvement_id": "DI-03-0026-scrum-master",
936
+ "kind": "approves",
937
+ "refs": [],
938
+ "role_canonical": true,
939
+ "role_id": "scrum-master",
940
+ "source_mode": "derived"
941
+ },
942
+ {
943
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:36",
944
+ "anchor_text": "| Scrum Master / Team Lead | **Responsável pela decisão final do modelo** no contexto da equipa/projeto (aprovação do baseline e revisões) |",
945
+ "applicable_levels": null,
946
+ "bundle_id": "03-threat-modeling",
947
+ "involvement_id": "DI-03-0036-scrum-master",
948
+ "kind": "approves",
949
+ "refs": [],
950
+ "role_canonical": true,
951
+ "role_id": "scrum-master",
952
+ "source_mode": "derived"
953
+ },
954
+ {
955
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:129",
956
+ "anchor_text": "| Design / Revisão | Revisão da arquitetura | Arquitetos de Software + AppSec Engineer | Antes da aprovação de design |",
957
+ "applicable_levels": null,
958
+ "bundle_id": "03-threat-modeling",
959
+ "involvement_id": "DI-03-0129-appsec-engineer",
960
+ "kind": "approves",
961
+ "refs": [],
962
+ "role_canonical": true,
963
+ "role_id": "appsec-engineer",
964
+ "source_mode": "derived"
965
+ },
966
+ {
967
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:129",
968
+ "anchor_text": "| Design / Revisão | Revisão da arquitetura | Arquitetos de Software + AppSec Engineer | Antes da aprovação de design |",
969
+ "applicable_levels": null,
970
+ "bundle_id": "03-threat-modeling",
971
+ "involvement_id": "DI-03-0129-arquitetos-software",
972
+ "kind": "approves",
973
+ "refs": [],
974
+ "role_canonical": true,
975
+ "role_id": "arquitetos-software",
976
+ "source_mode": "derived"
977
+ },
978
+ {
979
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:192",
980
+ "anchor_text": "- [ ] Aprovação formal por AppSec",
981
+ "applicable_levels": null,
982
+ "bundle_id": "03-threat-modeling",
983
+ "involvement_id": "DI-03-0192-appsec-engineer",
984
+ "kind": "approves",
985
+ "refs": [],
986
+ "role_canonical": true,
987
+ "role_id": "appsec-engineer",
988
+ "source_mode": "derived"
989
+ },
990
+ {
991
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:369",
992
+ "anchor_text": "| Design / Revisão | Presença de dados pessoais | Arquitetos de Software + GRC / Compliance | Antes da aprovação de design |",
993
+ "applicable_levels": null,
994
+ "bundle_id": "03-threat-modeling",
995
+ "involvement_id": "DI-03-0369-arquitetos-software",
996
+ "kind": "approves",
997
+ "refs": [],
998
+ "role_canonical": true,
999
+ "role_id": "arquitetos-software",
1000
+ "source_mode": "derived"
1001
+ },
1002
+ {
1003
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:369",
1004
+ "anchor_text": "| Design / Revisão | Presença de dados pessoais | Arquitetos de Software + GRC / Compliance | Antes da aprovação de design |",
1005
+ "applicable_levels": null,
1006
+ "bundle_id": "03-threat-modeling",
1007
+ "involvement_id": "DI-03-0369-grc-compliance",
1008
+ "kind": "approves",
1009
+ "refs": [],
1010
+ "role_canonical": true,
1011
+ "role_id": "grc-compliance",
1012
+ "source_mode": "derived"
1013
+ },
1014
+ {
1015
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:408",
1016
+ "anchor_text": "| L2 | Sim | Aprovação formal por Scrum Master / Team Lead + AppSec Engineer |",
1017
+ "applicable_levels": {
1018
+ "L1": false,
1019
+ "L2": true,
1020
+ "L3": false
1021
+ },
1022
+ "bundle_id": "03-threat-modeling",
1023
+ "involvement_id": "DI-03-0408-appsec-engineer",
1024
+ "kind": "approves",
1025
+ "refs": [],
1026
+ "role_canonical": true,
1027
+ "role_id": "appsec-engineer",
1028
+ "source_mode": "derived"
1029
+ },
1030
+ {
1031
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:408",
1032
+ "anchor_text": "| L2 | Sim | Aprovação formal por Scrum Master / Team Lead + AppSec Engineer |",
1033
+ "applicable_levels": {
1034
+ "L1": false,
1035
+ "L2": true,
1036
+ "L3": false
1037
+ },
1038
+ "bundle_id": "03-threat-modeling",
1039
+ "involvement_id": "DI-03-0408-scrum-master",
1040
+ "kind": "approves",
1041
+ "refs": [],
1042
+ "role_canonical": true,
1043
+ "role_id": "scrum-master",
1044
+ "source_mode": "derived"
1045
+ },
1046
+ {
1047
+ "anchor": "03-threat-modeling/aplicacao-lifecycle.md:690",
1048
+ "anchor_text": "| Risco aceite | Informal | Documentado | Formal, aprovado por AppSec Engineer e com sunset definido |",
1049
+ "applicable_levels": null,
1050
+ "bundle_id": "03-threat-modeling",
1051
+ "involvement_id": "DI-03-0690-appsec-engineer",
1052
+ "kind": "approves",
1053
+ "refs": [],
1054
+ "role_canonical": true,
1055
+ "role_id": "appsec-engineer",
1056
+ "source_mode": "derived"
1057
+ },
1058
+ {
1059
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:27",
1060
+ "anchor_text": "| Exceção arquitetural | Solicitar/avaliar/aprovar exceção com controlos compensatórios e *sunset* | Product Owner, AppSec Engineer, Arquitetos de Software | `excecao-arquitetura.md` |",
1061
+ "applicable_levels": null,
1062
+ "bundle_id": "04-arquitetura-segura",
1063
+ "involvement_id": "DI-04-0027-appsec-engineer",
1064
+ "kind": "approves",
1065
+ "refs": [],
1066
+ "role_canonical": true,
1067
+ "role_id": "appsec-engineer",
1068
+ "source_mode": "derived"
1069
+ },
1070
+ {
1071
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:27",
1072
+ "anchor_text": "| Exceção arquitetural | Solicitar/avaliar/aprovar exceção com controlos compensatórios e *sunset* | Product Owner, AppSec Engineer, Arquitetos de Software | `excecao-arquitetura.md` |",
1073
+ "applicable_levels": null,
1074
+ "bundle_id": "04-arquitetura-segura",
1075
+ "involvement_id": "DI-04-0027-arquitetos-software",
1076
+ "kind": "approves",
1077
+ "refs": [],
1078
+ "role_canonical": true,
1079
+ "role_id": "arquitetos-software",
1080
+ "source_mode": "derived"
1081
+ },
1082
+ {
1083
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:27",
1084
+ "anchor_text": "| Exceção arquitetural | Solicitar/avaliar/aprovar exceção com controlos compensatórios e *sunset* | Product Owner, AppSec Engineer, Arquitetos de Software | `excecao-arquitetura.md` |",
1085
+ "applicable_levels": null,
1086
+ "bundle_id": "04-arquitetura-segura",
1087
+ "involvement_id": "DI-04-0027-product-owner",
1088
+ "kind": "approves",
1089
+ "refs": [],
1090
+ "role_canonical": true,
1091
+ "role_id": "product-owner",
1092
+ "source_mode": "derived"
1093
+ },
1094
+ {
1095
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:42",
1096
+ "anchor_text": "| Product Owner | Priorizar investimento/mitigação, aprovar trade-offs de negócio e exceções com impacto em scope/prazos |",
1097
+ "applicable_levels": null,
1098
+ "bundle_id": "04-arquitetura-segura",
1099
+ "involvement_id": "DI-04-0042-product-owner",
1100
+ "kind": "approves",
1101
+ "refs": [],
1102
+ "role_canonical": true,
1103
+ "role_id": "product-owner",
1104
+ "source_mode": "derived"
1105
+ },
1106
+ {
1107
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:70",
1108
+ "anchor_text": "- [ ] Aprovação registada (AppSec + Arquitetura)",
1109
+ "applicable_levels": null,
1110
+ "bundle_id": "04-arquitetura-segura",
1111
+ "involvement_id": "DI-04-0070-appsec-engineer",
1112
+ "kind": "approves",
1113
+ "refs": [],
1114
+ "role_canonical": true,
1115
+ "role_id": "appsec-engineer",
1116
+ "source_mode": "derived"
1117
+ },
1118
+ {
1119
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:117",
1120
+ "anchor_text": "- [ ] Aprovação registada (AppSec + Arquitetura)",
1121
+ "applicable_levels": null,
1122
+ "bundle_id": "04-arquitetura-segura",
1123
+ "involvement_id": "DI-04-0117-appsec-engineer",
1124
+ "kind": "approves",
1125
+ "refs": [],
1126
+ "role_canonical": true,
1127
+ "role_id": "appsec-engineer",
1128
+ "source_mode": "derived"
1129
+ },
1130
+ {
1131
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:588",
1132
+ "anchor_text": "- [ ] Aprovação formal (Arquitetura + AppSec)",
1133
+ "applicable_levels": null,
1134
+ "bundle_id": "04-arquitetura-segura",
1135
+ "involvement_id": "DI-04-0588-appsec-engineer",
1136
+ "kind": "approves",
1137
+ "refs": [],
1138
+ "role_canonical": true,
1139
+ "role_id": "appsec-engineer",
1140
+ "source_mode": "derived"
1141
+ },
1142
+ {
1143
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:703",
1144
+ "anchor_text": "| Design / Revisão | Introdução ou alteração de componente não determinístico | Arquitetos de Software + AppSec Engineer | Antes da aprovação do design |",
1145
+ "applicable_levels": null,
1146
+ "bundle_id": "04-arquitetura-segura",
1147
+ "involvement_id": "DI-04-0703-appsec-engineer",
1148
+ "kind": "approves",
1149
+ "refs": [],
1150
+ "role_canonical": true,
1151
+ "role_id": "appsec-engineer",
1152
+ "source_mode": "derived"
1153
+ },
1154
+ {
1155
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:703",
1156
+ "anchor_text": "| Design / Revisão | Introdução ou alteração de componente não determinístico | Arquitetos de Software + AppSec Engineer | Antes da aprovação do design |",
1157
+ "applicable_levels": null,
1158
+ "bundle_id": "04-arquitetura-segura",
1159
+ "involvement_id": "DI-04-0703-arquitetos-software",
1160
+ "kind": "approves",
1161
+ "refs": [],
1162
+ "role_canonical": true,
1163
+ "role_id": "arquitetos-software",
1164
+ "source_mode": "derived"
1165
+ },
1166
+ {
1167
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:754",
1168
+ "anchor_text": "| L3 | Obrigatório para A2+; A3/A4 com revisão `appsec` independente | Checklist [`ARC-015`](/sbd-toe/sbd-manual/arquitetura-segura/addon/catalogo-requisitos-arquitetura#arc-015) completa + revisão independente; A4 com assinatura formal do ",
1169
+ "applicable_levels": {
1170
+ "L1": false,
1171
+ "L2": false,
1172
+ "L3": true
1173
+ },
1174
+ "bundle_id": "04-arquitetura-segura",
1175
+ "involvement_id": "DI-04-0754-gestao-executiva",
1176
+ "kind": "approves",
1177
+ "refs": [
1178
+ "ARC-015"
1179
+ ],
1180
+ "role_canonical": true,
1181
+ "role_id": "gestao-executiva",
1182
+ "source_mode": "derived"
1183
+ },
1184
+ {
1185
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:853",
1186
+ "anchor_text": "| Design / Revisão | Introdução ou alteração de componente AI/ML não-agentic | Arquitetos de Software + AppSec Engineer | Antes da aprovação do design |",
1187
+ "applicable_levels": null,
1188
+ "bundle_id": "04-arquitetura-segura",
1189
+ "involvement_id": "DI-04-0853-appsec-engineer",
1190
+ "kind": "approves",
1191
+ "refs": [],
1192
+ "role_canonical": true,
1193
+ "role_id": "appsec-engineer",
1194
+ "source_mode": "derived"
1195
+ },
1196
+ {
1197
+ "anchor": "04-arquitetura-segura/aplicacao-lifecycle.md:853",
1198
+ "anchor_text": "| Design / Revisão | Introdução ou alteração de componente AI/ML não-agentic | Arquitetos de Software + AppSec Engineer | Antes da aprovação do design |",
1199
+ "applicable_levels": null,
1200
+ "bundle_id": "04-arquitetura-segura",
1201
+ "involvement_id": "DI-04-0853-arquitetos-software",
1202
+ "kind": "approves",
1203
+ "refs": [],
1204
+ "role_canonical": true,
1205
+ "role_id": "arquitetos-software",
1206
+ "source_mode": "derived"
1207
+ },
1208
+ {
1209
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:79",
1210
+ "anchor_text": "| L3 | Sim | Revisão AppSec + proveniência",
1211
+ "applicable_levels": {
1212
+ "L1": false,
1213
+ "L2": false,
1214
+ "L3": true
1215
+ },
1216
+ "bundle_id": "05-dependencias-sbom-sca",
1217
+ "involvement_id": "DI-05-0079-appsec-engineer",
1218
+ "kind": "approves",
1219
+ "refs": [],
1220
+ "role_canonical": true,
1221
+ "role_id": "appsec-engineer",
1222
+ "source_mode": "derived"
1223
+ },
1224
+ {
1225
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:84",
1226
+ "anchor_text": "| Design/Dev | Inclusão de dependência | Developer + AppSec | Na aprovação da dependência |",
1227
+ "applicable_levels": null,
1228
+ "bundle_id": "05-dependencias-sbom-sca",
1229
+ "involvement_id": "DI-05-0084-appsec-engineer",
1230
+ "kind": "approves",
1231
+ "refs": [],
1232
+ "role_canonical": true,
1233
+ "role_id": "appsec-engineer",
1234
+ "source_mode": "derived"
1235
+ },
1236
+ {
1237
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:84",
1238
+ "anchor_text": "| Design/Dev | Inclusão de dependência | Developer + AppSec | Na aprovação da dependência |",
1239
+ "applicable_levels": null,
1240
+ "bundle_id": "05-dependencias-sbom-sca",
1241
+ "involvement_id": "DI-05-0084-developer",
1242
+ "kind": "approves",
1243
+ "refs": [],
1244
+ "role_canonical": true,
1245
+ "role_id": "developer",
1246
+ "source_mode": "derived"
1247
+ },
1248
+ {
1249
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:258",
1250
+ "anchor_text": "| L3 | Sim | Revisão formal + AppSec envolvido",
1251
+ "applicable_levels": {
1252
+ "L1": false,
1253
+ "L2": false,
1254
+ "L3": true
1255
+ },
1256
+ "bundle_id": "05-dependencias-sbom-sca",
1257
+ "involvement_id": "DI-05-0258-appsec-engineer",
1258
+ "kind": "approves",
1259
+ "refs": [],
1260
+ "role_canonical": true,
1261
+ "role_id": "appsec-engineer",
1262
+ "source_mode": "derived"
1263
+ },
1264
+ {
1265
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:342",
1266
+ "anchor_text": "| L2 | Sim | Auditorias periódicas |",
1267
+ "applicable_levels": {
1268
+ "L1": false,
1269
+ "L2": true,
1270
+ "L3": false
1271
+ },
1272
+ "bundle_id": "05-dependencias-sbom-sca",
1273
+ "involvement_id": "DI-05-0342-auditores",
1274
+ "kind": "approves",
1275
+ "refs": [],
1276
+ "role_canonical": true,
1277
+ "role_id": "auditores",
1278
+ "source_mode": "derived"
1279
+ },
1280
+ {
1281
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:348",
1282
+ "anchor_text": "| Dev | Inclusão de nova lib | Developer + AppSec | Na aprovação da dependência |",
1283
+ "applicable_levels": null,
1284
+ "bundle_id": "05-dependencias-sbom-sca",
1285
+ "involvement_id": "DI-05-0348-appsec-engineer",
1286
+ "kind": "approves",
1287
+ "refs": [],
1288
+ "role_canonical": true,
1289
+ "role_id": "appsec-engineer",
1290
+ "source_mode": "derived"
1291
+ },
1292
+ {
1293
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:348",
1294
+ "anchor_text": "| Dev | Inclusão de nova lib | Developer + AppSec | Na aprovação da dependência |",
1295
+ "applicable_levels": null,
1296
+ "bundle_id": "05-dependencias-sbom-sca",
1297
+ "involvement_id": "DI-05-0348-developer",
1298
+ "kind": "approves",
1299
+ "refs": [],
1300
+ "role_canonical": true,
1301
+ "role_id": "developer",
1302
+ "source_mode": "derived"
1303
+ },
1304
+ {
1305
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:618",
1306
+ "anchor_text": "| Design/Dev | Inclusão de dependência | Developer | Na aprovação da dependência |",
1307
+ "applicable_levels": null,
1308
+ "bundle_id": "05-dependencias-sbom-sca",
1309
+ "involvement_id": "DI-05-0618-developer",
1310
+ "kind": "approves",
1311
+ "refs": [],
1312
+ "role_canonical": true,
1313
+ "role_id": "developer",
1314
+ "source_mode": "derived"
1315
+ },
1316
+ {
1317
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:725",
1318
+ "anchor_text": "| Aprovação de provider | Adição de novo *provider* AI | AppSec + GRC (+ Legal se necessário) | Antes do uso operacional |",
1319
+ "applicable_levels": null,
1320
+ "bundle_id": "05-dependencias-sbom-sca",
1321
+ "involvement_id": "DI-05-0725-appsec-engineer",
1322
+ "kind": "approves",
1323
+ "refs": [],
1324
+ "role_canonical": true,
1325
+ "role_id": "appsec-engineer",
1326
+ "source_mode": "derived"
1327
+ },
1328
+ {
1329
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:815",
1330
+ "anchor_text": "| Política de severidade mínima documentada; *registries* recomendados; aprovação simples | Política versionada; *allowlist* enforced + *fallback* auditado; registo com campos obrigatórios | Idem + revisão AppSec/GRC do *fallback* e do regi",
1331
+ "applicable_levels": null,
1332
+ "bundle_id": "05-dependencias-sbom-sca",
1333
+ "involvement_id": "DI-05-0815-appsec-engineer",
1334
+ "kind": "approves",
1335
+ "refs": [],
1336
+ "role_canonical": true,
1337
+ "role_id": "appsec-engineer",
1338
+ "source_mode": "derived"
1339
+ },
1340
+ {
1341
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:822",
1342
+ "anchor_text": "| Dev | Aprovação de nova dependência | AppSec + Developer | Na aprovação da dependência |",
1343
+ "applicable_levels": null,
1344
+ "bundle_id": "05-dependencias-sbom-sca",
1345
+ "involvement_id": "DI-05-0822-appsec-engineer",
1346
+ "kind": "approves",
1347
+ "refs": [],
1348
+ "role_canonical": true,
1349
+ "role_id": "appsec-engineer",
1350
+ "source_mode": "derived"
1351
+ },
1352
+ {
1353
+ "anchor": "05-dependencias-sbom-sca/aplicacao-lifecycle.md:822",
1354
+ "anchor_text": "| Dev | Aprovação de nova dependência | AppSec + Developer | Na aprovação da dependência |",
1355
+ "applicable_levels": null,
1356
+ "bundle_id": "05-dependencias-sbom-sca",
1357
+ "involvement_id": "DI-05-0822-developer",
1358
+ "kind": "approves",
1359
+ "refs": [],
1360
+ "role_canonical": true,
1361
+ "role_id": "developer",
1362
+ "source_mode": "derived"
1363
+ },
1364
+ {
1365
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:49",
1366
+ "anchor_text": "| G1 | Proposto | Revisão humana estruturada com checklist | Aprovação registada no PR + checklist | **Scrum Master / Team Lead** (com execução por **Developer** / **Quality Assurance (QA)**) |",
1367
+ "applicable_levels": null,
1368
+ "bundle_id": "06-desenvolvimento-seguro",
1369
+ "involvement_id": "DI-06-0049-developer",
1370
+ "kind": "approves",
1371
+ "refs": [],
1372
+ "role_canonical": true,
1373
+ "role_id": "developer",
1374
+ "source_mode": "derived"
1375
+ },
1376
+ {
1377
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:49",
1378
+ "anchor_text": "| G1 | Proposto | Revisão humana estruturada com checklist | Aprovação registada no PR + checklist | **Scrum Master / Team Lead** (com execução por **Developer** / **Quality Assurance (QA)**) |",
1379
+ "applicable_levels": null,
1380
+ "bundle_id": "06-desenvolvimento-seguro",
1381
+ "involvement_id": "DI-06-0049-qa",
1382
+ "kind": "approves",
1383
+ "refs": [],
1384
+ "role_canonical": true,
1385
+ "role_id": "qa",
1386
+ "source_mode": "derived"
1387
+ },
1388
+ {
1389
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:49",
1390
+ "anchor_text": "| G1 | Proposto | Revisão humana estruturada com checklist | Aprovação registada no PR + checklist | **Scrum Master / Team Lead** (com execução por **Developer** / **Quality Assurance (QA)**) |",
1391
+ "applicable_levels": null,
1392
+ "bundle_id": "06-desenvolvimento-seguro",
1393
+ "involvement_id": "DI-06-0049-scrum-master",
1394
+ "kind": "approves",
1395
+ "refs": [],
1396
+ "role_canonical": true,
1397
+ "role_id": "scrum-master",
1398
+ "source_mode": "derived"
1399
+ },
1400
+ {
1401
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:51",
1402
+ "anchor_text": "| G3 | Validado | Decisão final de aceitação | Aprovação final + referência a exceções | **Scrum Master / Team Lead** (L1) · **AppSec Engineer** (L2/L3) · **Gestão Executiva** (L3 quando aplicável) |",
1403
+ "applicable_levels": {
1404
+ "L1": false,
1405
+ "L2": true,
1406
+ "L3": true
1407
+ },
1408
+ "bundle_id": "06-desenvolvimento-seguro",
1409
+ "involvement_id": "DI-06-0051-appsec-engineer",
1410
+ "kind": "approves",
1411
+ "refs": [],
1412
+ "role_canonical": true,
1413
+ "role_id": "appsec-engineer",
1414
+ "source_mode": "derived"
1415
+ },
1416
+ {
1417
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:51",
1418
+ "anchor_text": "| G3 | Validado | Decisão final de aceitação | Aprovação final + referência a exceções | **Scrum Master / Team Lead** (L1) · **AppSec Engineer** (L2/L3) · **Gestão Executiva** (L3 quando aplicável) |",
1419
+ "applicable_levels": {
1420
+ "L1": false,
1421
+ "L2": false,
1422
+ "L3": true
1423
+ },
1424
+ "bundle_id": "06-desenvolvimento-seguro",
1425
+ "involvement_id": "DI-06-0051-gestao-executiva",
1426
+ "kind": "approves",
1427
+ "refs": [],
1428
+ "role_canonical": true,
1429
+ "role_id": "gestao-executiva",
1430
+ "source_mode": "derived"
1431
+ },
1432
+ {
1433
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:51",
1434
+ "anchor_text": "| G3 | Validado | Decisão final de aceitação | Aprovação final + referência a exceções | **Scrum Master / Team Lead** (L1) · **AppSec Engineer** (L2/L3) · **Gestão Executiva** (L3 quando aplicável) |",
1435
+ "applicable_levels": {
1436
+ "L1": true,
1437
+ "L2": true,
1438
+ "L3": true
1439
+ },
1440
+ "bundle_id": "06-desenvolvimento-seguro",
1441
+ "involvement_id": "DI-06-0051-scrum-master",
1442
+ "kind": "approves",
1443
+ "refs": [],
1444
+ "role_canonical": true,
1445
+ "role_id": "scrum-master",
1446
+ "source_mode": "derived"
1447
+ },
1448
+ {
1449
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:69",
1450
+ "anchor_text": "| **AppSec Engineer** | Definir critérios mínimos; aprovar exceções; validar dependências críticas; mapear requisitos e findings a OWASP/ASVS/CWE; definir perfis L1–L3 |",
1451
+ "applicable_levels": {
1452
+ "L1": true,
1453
+ "L2": false,
1454
+ "L3": true
1455
+ },
1456
+ "bundle_id": "06-desenvolvimento-seguro",
1457
+ "involvement_id": "DI-06-0069-appsec-engineer",
1458
+ "kind": "approves",
1459
+ "refs": [],
1460
+ "role_canonical": true,
1461
+ "role_id": "appsec-engineer",
1462
+ "source_mode": "derived"
1463
+ },
1464
+ {
1465
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:70",
1466
+ "anchor_text": "| **Arquitetos de Software** | Definir padrões por stack, decisões estruturais e guidelines base; aprovar curadoria técnica de guidelines/rulesets; assegurar consistência arquitetural |",
1467
+ "applicable_levels": null,
1468
+ "bundle_id": "06-desenvolvimento-seguro",
1469
+ "involvement_id": "DI-06-0070-arquitetos-software",
1470
+ "kind": "approves",
1471
+ "refs": [],
1472
+ "role_canonical": true,
1473
+ "role_id": "arquitetos-software",
1474
+ "source_mode": "derived"
1475
+ },
1476
+ {
1477
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:98",
1478
+ "anchor_text": "- [ ] *Tailoring* documentado (`rules/README.md`) e aprovado (por **Arquitetos de Software** / **AppSec Engineer** conforme aplicável)",
1479
+ "applicable_levels": null,
1480
+ "bundle_id": "06-desenvolvimento-seguro",
1481
+ "involvement_id": "DI-06-0098-appsec-engineer",
1482
+ "kind": "approves",
1483
+ "refs": [],
1484
+ "role_canonical": true,
1485
+ "role_id": "appsec-engineer",
1486
+ "source_mode": "derived"
1487
+ },
1488
+ {
1489
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:98",
1490
+ "anchor_text": "- [ ] *Tailoring* documentado (`rules/README.md`) e aprovado (por **Arquitetos de Software** / **AppSec Engineer** conforme aplicável)",
1491
+ "applicable_levels": null,
1492
+ "bundle_id": "06-desenvolvimento-seguro",
1493
+ "involvement_id": "DI-06-0098-arquitetos-software",
1494
+ "kind": "approves",
1495
+ "refs": [],
1496
+ "role_canonical": true,
1497
+ "role_id": "arquitetos-software",
1498
+ "source_mode": "derived"
1499
+ },
1500
+ {
1501
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:112",
1502
+ "anchor_text": "| L3 | Sim | Auditoria periódica e *policy-as-code* |",
1503
+ "applicable_levels": {
1504
+ "L1": false,
1505
+ "L2": false,
1506
+ "L3": true
1507
+ },
1508
+ "bundle_id": "06-desenvolvimento-seguro",
1509
+ "involvement_id": "DI-06-0112-auditores",
1510
+ "kind": "approves",
1511
+ "refs": [],
1512
+ "role_canonical": true,
1513
+ "role_id": "auditores",
1514
+ "source_mode": "derived"
1515
+ },
1516
+ {
1517
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:156",
1518
+ "anchor_text": "| L3 | Sim | Revisão dedicada com foco em segurança (inclui **AppSec Engineer** quando aplicável) |",
1519
+ "applicable_levels": {
1520
+ "L1": false,
1521
+ "L2": false,
1522
+ "L3": true
1523
+ },
1524
+ "bundle_id": "06-desenvolvimento-seguro",
1525
+ "involvement_id": "DI-06-0156-appsec-engineer",
1526
+ "kind": "approves",
1527
+ "refs": [],
1528
+ "role_canonical": true,
1529
+ "role_id": "appsec-engineer",
1530
+ "source_mode": "derived"
1531
+ },
1532
+ {
1533
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:441",
1534
+ "anchor_text": "- [ ] Aprovação final por **AppSec Engineer** (e, em L3 quando aplicável, por **Gestão Executiva**)",
1535
+ "applicable_levels": {
1536
+ "L1": false,
1537
+ "L2": false,
1538
+ "L3": true
1539
+ },
1540
+ "bundle_id": "06-desenvolvimento-seguro",
1541
+ "involvement_id": "DI-06-0441-appsec-engineer",
1542
+ "kind": "approves",
1543
+ "refs": [],
1544
+ "role_canonical": true,
1545
+ "role_id": "appsec-engineer",
1546
+ "source_mode": "derived"
1547
+ },
1548
+ {
1549
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:441",
1550
+ "anchor_text": "- [ ] Aprovação final por **AppSec Engineer** (e, em L3 quando aplicável, por **Gestão Executiva**)",
1551
+ "applicable_levels": {
1552
+ "L1": false,
1553
+ "L2": false,
1554
+ "L3": true
1555
+ },
1556
+ "bundle_id": "06-desenvolvimento-seguro",
1557
+ "involvement_id": "DI-06-0441-gestao-executiva",
1558
+ "kind": "approves",
1559
+ "refs": [],
1560
+ "role_canonical": true,
1561
+ "role_id": "gestao-executiva",
1562
+ "source_mode": "derived"
1563
+ },
1564
+ {
1565
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:730",
1566
+ "anchor_text": "- [ ] *Baseline* de falsos positivos do SAST versionada e aprovada por **AppSec Engineer**",
1567
+ "applicable_levels": null,
1568
+ "bundle_id": "06-desenvolvimento-seguro",
1569
+ "involvement_id": "DI-06-0730-appsec-engineer",
1570
+ "kind": "approves",
1571
+ "refs": [],
1572
+ "role_canonical": true,
1573
+ "role_id": "appsec-engineer",
1574
+ "source_mode": "derived"
1575
+ },
1576
+ {
1577
+ "anchor": "06-desenvolvimento-seguro/aplicacao-lifecycle.md:740",
1578
+ "anchor_text": "| Proveniência sinalizada; SAST com baseline básica | Proveniência identificada + revisão humana para origem não interna; baseline aprovada por AppSec + thresholds por perfil | + *policy-as-code* do gate, auditoria periódica da baseline e d",
1579
+ "applicable_levels": null,
1580
+ "bundle_id": "06-desenvolvimento-seguro",
1581
+ "involvement_id": "DI-06-0740-appsec-engineer",
1582
+ "kind": "approves",
1583
+ "refs": [],
1584
+ "role_canonical": true,
1585
+ "role_id": "appsec-engineer",
1586
+ "source_mode": "derived"
1587
+ },
1588
+ {
1589
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:36",
1590
+ "anchor_text": "| Registo de exceção (*bypass* de gate) | Aprovação formal, prazos, compensações e reversão automática | GRC / Compliance, Auditores Internos, AppSec Engineers |",
1591
+ "applicable_levels": null,
1592
+ "bundle_id": "07-cicd-seguro",
1593
+ "involvement_id": "DI-07-0036-appsec-engineer",
1594
+ "kind": "approves",
1595
+ "refs": [],
1596
+ "role_canonical": true,
1597
+ "role_id": "appsec-engineer",
1598
+ "source_mode": "derived"
1599
+ },
1600
+ {
1601
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:36",
1602
+ "anchor_text": "| Registo de exceção (*bypass* de gate) | Aprovação formal, prazos, compensações e reversão automática | GRC / Compliance, Auditores Internos, AppSec Engineers |",
1603
+ "applicable_levels": null,
1604
+ "bundle_id": "07-cicd-seguro",
1605
+ "involvement_id": "DI-07-0036-auditores",
1606
+ "kind": "approves",
1607
+ "refs": [],
1608
+ "role_canonical": true,
1609
+ "role_id": "auditores",
1610
+ "source_mode": "derived"
1611
+ },
1612
+ {
1613
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:36",
1614
+ "anchor_text": "| Registo de exceção (*bypass* de gate) | Aprovação formal, prazos, compensações e reversão automática | GRC / Compliance, Auditores Internos, AppSec Engineers |",
1615
+ "applicable_levels": null,
1616
+ "bundle_id": "07-cicd-seguro",
1617
+ "involvement_id": "DI-07-0036-grc-compliance",
1618
+ "kind": "approves",
1619
+ "refs": [],
1620
+ "role_canonical": true,
1621
+ "role_id": "grc-compliance",
1622
+ "source_mode": "derived"
1623
+ },
1624
+ {
1625
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:54",
1626
+ "anchor_text": "| Aprovar promoção/deploy (ações irreversíveis) com owner explícito | DevOps / SRE | AppSec Engineers (L2/L3), GRC (L3) | Registo nominal de aprovação, contexto e evidência associada |",
1627
+ "applicable_levels": {
1628
+ "L1": false,
1629
+ "L2": true,
1630
+ "L3": true
1631
+ },
1632
+ "bundle_id": "07-cicd-seguro",
1633
+ "involvement_id": "DI-07-0054-appsec-engineer",
1634
+ "kind": "approves",
1635
+ "refs": [],
1636
+ "role_canonical": true,
1637
+ "role_id": "appsec-engineer",
1638
+ "source_mode": "derived"
1639
+ },
1640
+ {
1641
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:54",
1642
+ "anchor_text": "| Aprovar promoção/deploy (ações irreversíveis) com owner explícito | DevOps / SRE | AppSec Engineers (L2/L3), GRC (L3) | Registo nominal de aprovação, contexto e evidência associada |",
1643
+ "applicable_levels": {
1644
+ "L1": false,
1645
+ "L2": true,
1646
+ "L3": true
1647
+ },
1648
+ "bundle_id": "07-cicd-seguro",
1649
+ "involvement_id": "DI-07-0054-devops-sre",
1650
+ "kind": "approves",
1651
+ "refs": [],
1652
+ "role_canonical": true,
1653
+ "role_id": "devops-sre",
1654
+ "source_mode": "derived"
1655
+ },
1656
+ {
1657
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:55",
1658
+ "anchor_text": "| Registar e aprovar exceções (com prazo e compensações) | GRC / Compliance, Auditores Internos | AppSec Engineers | Registo formal de exceções e aprovações, TTL, plano compensatório |",
1659
+ "applicable_levels": null,
1660
+ "bundle_id": "07-cicd-seguro",
1661
+ "involvement_id": "DI-07-0055-appsec-engineer",
1662
+ "kind": "approves",
1663
+ "refs": [],
1664
+ "role_canonical": true,
1665
+ "role_id": "appsec-engineer",
1666
+ "source_mode": "derived"
1667
+ },
1668
+ {
1669
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:55",
1670
+ "anchor_text": "| Registar e aprovar exceções (com prazo e compensações) | GRC / Compliance, Auditores Internos | AppSec Engineers | Registo formal de exceções e aprovações, TTL, plano compensatório |",
1671
+ "applicable_levels": null,
1672
+ "bundle_id": "07-cicd-seguro",
1673
+ "involvement_id": "DI-07-0055-auditores",
1674
+ "kind": "approves",
1675
+ "refs": [],
1676
+ "role_canonical": true,
1677
+ "role_id": "auditores",
1678
+ "source_mode": "derived"
1679
+ },
1680
+ {
1681
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:55",
1682
+ "anchor_text": "| Registar e aprovar exceções (com prazo e compensações) | GRC / Compliance, Auditores Internos | AppSec Engineers | Registo formal de exceções e aprovações, TTL, plano compensatório |",
1683
+ "applicable_levels": null,
1684
+ "bundle_id": "07-cicd-seguro",
1685
+ "involvement_id": "DI-07-0055-grc-compliance",
1686
+ "kind": "approves",
1687
+ "refs": [],
1688
+ "role_canonical": true,
1689
+ "role_id": "grc-compliance",
1690
+ "source_mode": "derived"
1691
+ },
1692
+ {
1693
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:102",
1694
+ "anchor_text": "| L3 | Sim | Revisão dupla (code owner + AppSec) e bloqueio em falhas High |",
1695
+ "applicable_levels": {
1696
+ "L1": false,
1697
+ "L2": false,
1698
+ "L3": true
1699
+ },
1700
+ "bundle_id": "07-cicd-seguro",
1701
+ "involvement_id": "DI-07-0102-appsec-engineer",
1702
+ "kind": "approves",
1703
+ "refs": [],
1704
+ "role_canonical": true,
1705
+ "role_id": "appsec-engineer",
1706
+ "source_mode": "derived"
1707
+ },
1708
+ {
1709
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:330",
1710
+ "anchor_text": "| L2 | Sim | Bloqueio High/Critical + aprovação AppSec para exceções |",
1711
+ "applicable_levels": {
1712
+ "L1": false,
1713
+ "L2": true,
1714
+ "L3": false
1715
+ },
1716
+ "bundle_id": "07-cicd-seguro",
1717
+ "involvement_id": "DI-07-0330-appsec-engineer",
1718
+ "kind": "approves",
1719
+ "refs": [],
1720
+ "role_canonical": true,
1721
+ "role_id": "appsec-engineer",
1722
+ "source_mode": "derived"
1723
+ },
1724
+ {
1725
+ "anchor": "07-cicd-seguro/aplicacao-lifecycle.md:427",
1726
+ "anchor_text": "- [ ] Aprovação dupla (AppSec + GRC) em L2/L3",
1727
+ "applicable_levels": {
1728
+ "L1": false,
1729
+ "L2": true,
1730
+ "L3": true
1731
+ },
1732
+ "bundle_id": "07-cicd-seguro",
1733
+ "involvement_id": "DI-07-0427-appsec-engineer",
1734
+ "kind": "approves",
1735
+ "refs": [],
1736
+ "role_canonical": true,
1737
+ "role_id": "appsec-engineer",
1738
+ "source_mode": "derived"
1739
+ },
1740
+ {
1741
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:38",
1742
+ "anchor_text": "| Execução de `apply` | Executar apenas alterações aprovadas e assinadas | DevOps / SRE, GRC / Compliance |",
1743
+ "applicable_levels": null,
1744
+ "bundle_id": "08-iac-infraestrutura",
1745
+ "involvement_id": "DI-08-0038-devops-sre",
1746
+ "kind": "approves",
1747
+ "refs": [],
1748
+ "role_canonical": true,
1749
+ "role_id": "devops-sre",
1750
+ "source_mode": "derived"
1751
+ },
1752
+ {
1753
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:38",
1754
+ "anchor_text": "| Execução de `apply` | Executar apenas alterações aprovadas e assinadas | DevOps / SRE, GRC / Compliance |",
1755
+ "applicable_levels": null,
1756
+ "bundle_id": "08-iac-infraestrutura",
1757
+ "involvement_id": "DI-08-0038-grc-compliance",
1758
+ "kind": "approves",
1759
+ "refs": [],
1760
+ "role_canonical": true,
1761
+ "role_id": "grc-compliance",
1762
+ "source_mode": "derived"
1763
+ },
1764
+ {
1765
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:74",
1766
+ "anchor_text": "| Gerir exceções e revisões | GRC / Compliance | AppSec Engineers | `excecoes-iac.json`, logs de aprovação |",
1767
+ "applicable_levels": null,
1768
+ "bundle_id": "08-iac-infraestrutura",
1769
+ "involvement_id": "DI-08-0074-appsec-engineer",
1770
+ "kind": "approves",
1771
+ "refs": [],
1772
+ "role_canonical": true,
1773
+ "role_id": "appsec-engineer",
1774
+ "source_mode": "derived"
1775
+ },
1776
+ {
1777
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:74",
1778
+ "anchor_text": "| Gerir exceções e revisões | GRC / Compliance | AppSec Engineers | `excecoes-iac.json`, logs de aprovação |",
1779
+ "applicable_levels": null,
1780
+ "bundle_id": "08-iac-infraestrutura",
1781
+ "involvement_id": "DI-08-0074-grc-compliance",
1782
+ "kind": "approves",
1783
+ "refs": [],
1784
+ "role_canonical": true,
1785
+ "role_id": "grc-compliance",
1786
+ "source_mode": "derived"
1787
+ },
1788
+ {
1789
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:252",
1790
+ "anchor_text": "| L3 | Sim | Whitelist + validação + SBOM + attestation e revisão AppSec; denylist ativa |",
1791
+ "applicable_levels": {
1792
+ "L1": false,
1793
+ "L2": false,
1794
+ "L3": true
1795
+ },
1796
+ "bundle_id": "08-iac-infraestrutura",
1797
+ "involvement_id": "DI-08-0252-appsec-engineer",
1798
+ "kind": "approves",
1799
+ "refs": [],
1800
+ "role_canonical": true,
1801
+ "role_id": "appsec-engineer",
1802
+ "source_mode": "derived"
1803
+ },
1804
+ {
1805
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:319",
1806
+ "anchor_text": "- [ ] Auditoria de aprovação registada",
1807
+ "applicable_levels": null,
1808
+ "bundle_id": "08-iac-infraestrutura",
1809
+ "involvement_id": "DI-08-0319-auditores",
1810
+ "kind": "approves",
1811
+ "refs": [],
1812
+ "role_canonical": true,
1813
+ "role_id": "auditores",
1814
+ "source_mode": "derived"
1815
+ },
1816
+ {
1817
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:515",
1818
+ "anchor_text": "| L1 | Sim | Auditoria mensal |",
1819
+ "applicable_levels": {
1820
+ "L1": true,
1821
+ "L2": false,
1822
+ "L3": false
1823
+ },
1824
+ "bundle_id": "08-iac-infraestrutura",
1825
+ "involvement_id": "DI-08-0515-auditores",
1826
+ "kind": "approves",
1827
+ "refs": [],
1828
+ "role_canonical": true,
1829
+ "role_id": "auditores",
1830
+ "source_mode": "derived"
1831
+ },
1832
+ {
1833
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:583",
1834
+ "anchor_text": "| L2 | Sim | Aprov. PO + AppSec |",
1835
+ "applicable_levels": {
1836
+ "L1": false,
1837
+ "L2": true,
1838
+ "L3": false
1839
+ },
1840
+ "bundle_id": "08-iac-infraestrutura",
1841
+ "involvement_id": "DI-08-0583-appsec-engineer",
1842
+ "kind": "approves",
1843
+ "refs": [],
1844
+ "role_canonical": true,
1845
+ "role_id": "appsec-engineer",
1846
+ "source_mode": "derived"
1847
+ },
1848
+ {
1849
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:584",
1850
+ "anchor_text": "| L3 | Sim | Aprov. PO + AppSec + GRC |",
1851
+ "applicable_levels": {
1852
+ "L1": false,
1853
+ "L2": false,
1854
+ "L3": true
1855
+ },
1856
+ "bundle_id": "08-iac-infraestrutura",
1857
+ "involvement_id": "DI-08-0584-appsec-engineer",
1858
+ "kind": "approves",
1859
+ "refs": [],
1860
+ "role_canonical": true,
1861
+ "role_id": "appsec-engineer",
1862
+ "source_mode": "derived"
1863
+ },
1864
+ {
1865
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:617",
1866
+ "anchor_text": "| L2 | Sim | Aprovação dupla (AppSec+PO) |",
1867
+ "applicable_levels": {
1868
+ "L1": false,
1869
+ "L2": true,
1870
+ "L3": false
1871
+ },
1872
+ "bundle_id": "08-iac-infraestrutura",
1873
+ "involvement_id": "DI-08-0617-appsec-engineer",
1874
+ "kind": "approves",
1875
+ "refs": [],
1876
+ "role_canonical": true,
1877
+ "role_id": "appsec-engineer",
1878
+ "source_mode": "derived"
1879
+ },
1880
+ {
1881
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:618",
1882
+ "anchor_text": "| L3 | Sim | Aprovação AppSec+GRC e *review* por sprint |",
1883
+ "applicable_levels": {
1884
+ "L1": false,
1885
+ "L2": false,
1886
+ "L3": true
1887
+ },
1888
+ "bundle_id": "08-iac-infraestrutura",
1889
+ "involvement_id": "DI-08-0618-appsec-engineer",
1890
+ "kind": "approves",
1891
+ "refs": [],
1892
+ "role_canonical": true,
1893
+ "role_id": "appsec-engineer",
1894
+ "source_mode": "derived"
1895
+ },
1896
+ {
1897
+ "anchor": "08-iac-infraestrutura/aplicacao-lifecycle.md:679",
1898
+ "anchor_text": "| Trilha de aprovações (roles) | US-06 | DevOps + AppSec (mínimo) |",
1899
+ "applicable_levels": null,
1900
+ "bundle_id": "08-iac-infraestrutura",
1901
+ "involvement_id": "DI-08-0679-devops-sre",
1902
+ "kind": "approves",
1903
+ "refs": [],
1904
+ "role_canonical": true,
1905
+ "role_id": "devops-sre",
1906
+ "source_mode": "derived"
1907
+ },
1908
+ {
1909
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:40",
1910
+ "anchor_text": "| **Product Owner** | Aprovar risco residual e decidir *go/no-go* |",
1911
+ "applicable_levels": null,
1912
+ "bundle_id": "10-testes-seguranca",
1913
+ "involvement_id": "DI-10-0040-product-owner",
1914
+ "kind": "approves",
1915
+ "refs": [],
1916
+ "role_canonical": true,
1917
+ "role_id": "product-owner",
1918
+ "source_mode": "derived"
1919
+ },
1920
+ {
1921
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:168",
1922
+ "anchor_text": "| Staging | Build/Deploy em staging | QA | Antes da aprovação da release |",
1923
+ "applicable_levels": null,
1924
+ "bundle_id": "10-testes-seguranca",
1925
+ "involvement_id": "DI-10-0168-qa",
1926
+ "kind": "approves",
1927
+ "refs": [],
1928
+ "role_canonical": true,
1929
+ "role_id": "qa",
1930
+ "source_mode": "derived"
1931
+ },
1932
+ {
1933
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:357",
1934
+ "anchor_text": "| **Aprovação formal risco** | ⏳ Pendente | - | Aguarda AppSec + Produto |",
1935
+ "applicable_levels": null,
1936
+ "bundle_id": "10-testes-seguranca",
1937
+ "involvement_id": "DI-10-0357-appsec-engineer",
1938
+ "kind": "approves",
1939
+ "refs": [],
1940
+ "role_canonical": true,
1941
+ "role_id": "appsec-engineer",
1942
+ "source_mode": "derived"
1943
+ },
1944
+ {
1945
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:454",
1946
+ "anchor_text": "| Staging | Deploy de candidato a release | QA + AppSec Engineer | Antes de aprovação formal |",
1947
+ "applicable_levels": null,
1948
+ "bundle_id": "10-testes-seguranca",
1949
+ "involvement_id": "DI-10-0454-appsec-engineer",
1950
+ "kind": "approves",
1951
+ "refs": [],
1952
+ "role_canonical": true,
1953
+ "role_id": "appsec-engineer",
1954
+ "source_mode": "derived"
1955
+ },
1956
+ {
1957
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:454",
1958
+ "anchor_text": "| Staging | Deploy de candidato a release | QA + AppSec Engineer | Antes de aprovação formal |",
1959
+ "applicable_levels": null,
1960
+ "bundle_id": "10-testes-seguranca",
1961
+ "involvement_id": "DI-10-0454-qa",
1962
+ "kind": "approves",
1963
+ "refs": [],
1964
+ "role_canonical": true,
1965
+ "role_id": "qa",
1966
+ "source_mode": "derived"
1967
+ },
1968
+ {
1969
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:491",
1970
+ "anchor_text": "- [ ] Auditoria de exceções com dupla aprovação para L2/L3",
1971
+ "applicable_levels": {
1972
+ "L1": false,
1973
+ "L2": true,
1974
+ "L3": true
1975
+ },
1976
+ "bundle_id": "10-testes-seguranca",
1977
+ "involvement_id": "DI-10-0491-auditores",
1978
+ "kind": "approves",
1979
+ "refs": [],
1980
+ "role_canonical": true,
1981
+ "role_id": "auditores",
1982
+ "source_mode": "derived"
1983
+ },
1984
+ {
1985
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:656",
1986
+ "anchor_text": "- [ ] Template S1 de supressão FP com campos obrigatórios (Finding ID, análise técnica, evidência de teste, aprovador AppSec)",
1987
+ "applicable_levels": null,
1988
+ "bundle_id": "10-testes-seguranca",
1989
+ "involvement_id": "DI-10-0656-appsec-engineer",
1990
+ "kind": "approves",
1991
+ "refs": [],
1992
+ "role_canonical": true,
1993
+ "role_id": "appsec-engineer",
1994
+ "source_mode": "derived"
1995
+ },
1996
+ {
1997
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:827",
1998
+ "anchor_text": "| L2 | Override exige aprovação AppSec Engineer + expiração |",
1999
+ "applicable_levels": {
2000
+ "L1": false,
2001
+ "L2": true,
2002
+ "L3": false
2003
+ },
2004
+ "bundle_id": "10-testes-seguranca",
2005
+ "involvement_id": "DI-10-0827-appsec-engineer",
2006
+ "kind": "approves",
2007
+ "refs": [],
2008
+ "role_canonical": true,
2009
+ "role_id": "appsec-engineer",
2010
+ "source_mode": "derived"
2011
+ },
2012
+ {
2013
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:828",
2014
+ "anchor_text": "| L3 | Override exige dupla aprovação (AppSec Engineer + Product Owner / Scrum Master / Team Lead) + expiração + retest obrigatório |",
2015
+ "applicable_levels": {
2016
+ "L1": false,
2017
+ "L2": false,
2018
+ "L3": true
2019
+ },
2020
+ "bundle_id": "10-testes-seguranca",
2021
+ "involvement_id": "DI-10-0828-appsec-engineer",
2022
+ "kind": "approves",
2023
+ "refs": [],
2024
+ "role_canonical": true,
2025
+ "role_id": "appsec-engineer",
2026
+ "source_mode": "derived"
2027
+ },
2028
+ {
2029
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:828",
2030
+ "anchor_text": "| L3 | Override exige dupla aprovação (AppSec Engineer + Product Owner / Scrum Master / Team Lead) + expiração + retest obrigatório |",
2031
+ "applicable_levels": {
2032
+ "L1": false,
2033
+ "L2": false,
2034
+ "L3": true
2035
+ },
2036
+ "bundle_id": "10-testes-seguranca",
2037
+ "involvement_id": "DI-10-0828-product-owner",
2038
+ "kind": "approves",
2039
+ "refs": [],
2040
+ "role_canonical": true,
2041
+ "role_id": "product-owner",
2042
+ "source_mode": "derived"
2043
+ },
2044
+ {
2045
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:828",
2046
+ "anchor_text": "| L3 | Override exige dupla aprovação (AppSec Engineer + Product Owner / Scrum Master / Team Lead) + expiração + retest obrigatório |",
2047
+ "applicable_levels": {
2048
+ "L1": false,
2049
+ "L2": false,
2050
+ "L3": true
2051
+ },
2052
+ "bundle_id": "10-testes-seguranca",
2053
+ "involvement_id": "DI-10-0828-scrum-master",
2054
+ "kind": "approves",
2055
+ "refs": [],
2056
+ "role_canonical": true,
2057
+ "role_id": "scrum-master",
2058
+ "source_mode": "derived"
2059
+ },
2060
+ {
2061
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:864",
2062
+ "anchor_text": "- [ ] Revisão e aprovação por role humano (AppSec/QA)",
2063
+ "applicable_levels": null,
2064
+ "bundle_id": "10-testes-seguranca",
2065
+ "involvement_id": "DI-10-0864-appsec-engineer",
2066
+ "kind": "approves",
2067
+ "refs": [],
2068
+ "role_canonical": true,
2069
+ "role_id": "appsec-engineer",
2070
+ "source_mode": "derived"
2071
+ },
2072
+ {
2073
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:864",
2074
+ "anchor_text": "- [ ] Revisão e aprovação por role humano (AppSec/QA)",
2075
+ "applicable_levels": null,
2076
+ "bundle_id": "10-testes-seguranca",
2077
+ "involvement_id": "DI-10-0864-qa",
2078
+ "kind": "approves",
2079
+ "refs": [],
2080
+ "role_canonical": true,
2081
+ "role_id": "qa",
2082
+ "source_mode": "derived"
2083
+ },
2084
+ {
2085
+ "anchor": "10-testes-seguranca/aplicacao-lifecycle.md:891",
2086
+ "anchor_text": "- [ ] Baseline de FP aprovada por AppSec, com rationale por supressão",
2087
+ "applicable_levels": null,
2088
+ "bundle_id": "10-testes-seguranca",
2089
+ "involvement_id": "DI-10-0891-appsec-engineer",
2090
+ "kind": "approves",
2091
+ "refs": [],
2092
+ "role_canonical": true,
2093
+ "role_id": "appsec-engineer",
2094
+ "source_mode": "derived"
2095
+ },
2096
+ {
2097
+ "anchor": "11-deploy-seguro/aplicacao-lifecycle.md:38",
2098
+ "anchor_text": "| **AppSec Engineer** | Aprovar *gates* e gerir exceções |",
2099
+ "applicable_levels": null,
2100
+ "bundle_id": "11-deploy-seguro",
2101
+ "involvement_id": "DI-11-0038-appsec-engineer",
2102
+ "kind": "approves",
2103
+ "refs": [],
2104
+ "role_canonical": true,
2105
+ "role_id": "appsec-engineer",
2106
+ "source_mode": "derived"
2107
+ },
2108
+ {
2109
+ "anchor": "11-deploy-seguro/aplicacao-lifecycle.md:122",
2110
+ "anchor_text": "- [ ] Aprovação formal registada (QA + AppSec)",
2111
+ "applicable_levels": null,
2112
+ "bundle_id": "11-deploy-seguro",
2113
+ "involvement_id": "DI-11-0122-appsec-engineer",
2114
+ "kind": "approves",
2115
+ "refs": [],
2116
+ "role_canonical": true,
2117
+ "role_id": "appsec-engineer",
2118
+ "source_mode": "derived"
2119
+ },
2120
+ {
2121
+ "anchor": "11-deploy-seguro/aplicacao-lifecycle.md:122",
2122
+ "anchor_text": "- [ ] Aprovação formal registada (QA + AppSec)",
2123
+ "applicable_levels": null,
2124
+ "bundle_id": "11-deploy-seguro",
2125
+ "involvement_id": "DI-11-0122-qa",
2126
+ "kind": "approves",
2127
+ "refs": [],
2128
+ "role_canonical": true,
2129
+ "role_id": "qa",
2130
+ "source_mode": "derived"
2131
+ },
2132
+ {
2133
+ "anchor": "13-formacao-onboarding/aplicacao-lifecycle.md:60",
2134
+ "anchor_text": "- [ ] Exceções documentadas com aprovação AppSec/Gestão",
2135
+ "applicable_levels": null,
2136
+ "bundle_id": "13-formacao-onboarding",
2137
+ "involvement_id": "DI-13-0060-appsec-engineer",
2138
+ "kind": "approves",
2139
+ "refs": [],
2140
+ "role_canonical": true,
2141
+ "role_id": "appsec-engineer",
2142
+ "source_mode": "derived"
2143
+ },
2144
+ {
2145
+ "anchor": "13-formacao-onboarding/aplicacao-lifecycle.md:308",
2146
+ "anchor_text": "| Planeamento/Design | Aprovação de feature | Security Champion + AppSec Engineer | Antes do sprint de desenvolvimento |",
2147
+ "applicable_levels": null,
2148
+ "bundle_id": "13-formacao-onboarding",
2149
+ "involvement_id": "DI-13-0308-appsec-engineer",
2150
+ "kind": "approves",
2151
+ "refs": [],
2152
+ "role_canonical": true,
2153
+ "role_id": "appsec-engineer",
2154
+ "source_mode": "derived"
2155
+ },
2156
+ {
2157
+ "anchor": "13-formacao-onboarding/aplicacao-lifecycle.md:308",
2158
+ "anchor_text": "| Planeamento/Design | Aprovação de feature | Security Champion + AppSec Engineer | Antes do sprint de desenvolvimento |",
2159
+ "applicable_levels": null,
2160
+ "bundle_id": "13-formacao-onboarding",
2161
+ "involvement_id": "DI-13-0308-security-champion",
2162
+ "kind": "approves",
2163
+ "refs": [],
2164
+ "role_canonical": true,
2165
+ "role_id": "security-champion",
2166
+ "source_mode": "derived"
2167
+ },
2168
+ {
2169
+ "anchor": "14-governanca-contratacao/aplicacao-lifecycle.md:30",
2170
+ "anchor_text": "| **Gestão Executiva** | Aprovar risco residual |",
2171
+ "applicable_levels": null,
2172
+ "bundle_id": "14-governanca-contratacao",
2173
+ "involvement_id": "DI-14-0030-gestao-executiva",
2174
+ "kind": "approves",
2175
+ "refs": [],
2176
+ "role_canonical": true,
2177
+ "role_id": "gestao-executiva",
2178
+ "source_mode": "derived"
2179
+ },
2180
+ {
2181
+ "anchor": "14-governanca-contratacao/aplicacao-lifecycle.md:71",
2182
+ "anchor_text": "| Execução | Sempre que há desvio | Developer (submissão) + AppSec Engineer (validação) + Gestão Executiva / CISO (aprovação conforme nível) | Aprovação em 5 dias (L1–L2), 3 dias (L3); Notificação de revalidação 30 dias antes do vencimento ",
2183
+ "applicable_levels": null,
2184
+ "bundle_id": "14-governanca-contratacao",
2185
+ "involvement_id": "DI-14-0071-gestao-executiva",
2186
+ "kind": "approves",
2187
+ "refs": [],
2188
+ "role_canonical": true,
2189
+ "role_id": "gestao-executiva",
2190
+ "source_mode": "derived"
2191
+ },
2192
+ {
2193
+ "anchor": "14-governanca-contratacao/aplicacao-lifecycle.md:990",
2194
+ "anchor_text": "| Planeamento | Criação ou revisão de política | GRC / Compliance + CISO + Gestão Executiva (aprovação) | Aprovação antes da entrada em vigor |",
2195
+ "applicable_levels": null,
2196
+ "bundle_id": "14-governanca-contratacao",
2197
+ "involvement_id": "DI-14-0990-gestao-executiva",
2198
+ "kind": "approves",
2199
+ "refs": [],
2200
+ "role_canonical": true,
2201
+ "role_id": "gestao-executiva",
2202
+ "source_mode": "derived"
2203
+ },
2204
+ {
2205
+ "anchor": "14-governanca-contratacao/aplicacao-lifecycle.md:990",
2206
+ "anchor_text": "| Planeamento | Criação ou revisão de política | GRC / Compliance + CISO + Gestão Executiva (aprovação) | Aprovação antes da entrada em vigor |",
2207
+ "applicable_levels": null,
2208
+ "bundle_id": "14-governanca-contratacao",
2209
+ "involvement_id": "DI-14-0990-grc-compliance",
2210
+ "kind": "approves",
2211
+ "refs": [],
2212
+ "role_canonical": true,
2213
+ "role_id": "grc-compliance",
2214
+ "source_mode": "derived"
2215
+ }
2216
+ ],
2217
+ "note": "espécie de autoridade PARALELA aos practice_assignments (1.296 intocados); fecha ABS-005 (gestao-executiva no cap. 01) — ver declared_absences v2.7",
2218
+ "profiles": [
2219
+ "consult",
2220
+ "guide"
2221
+ ],
2222
+ "source_artifact": "data/entities/decision_involvements.json",
2223
+ "traversal_assertion": {
2224
+ "does_not_assert": "execução; RACI completo",
2225
+ "source": "estruturas publicadas (DoD, alçadas, tabelas) + curadoria com âncora",
2226
+ "verb": "aprova | é-consultado"
2227
+ }
2228
+ }