| { | |
| "id": 11, | |
| "category": "hard", | |
| "title": "Microservices", | |
| "description": "The same API key is duplicated across five services.", | |
| "scan_mode": "dir", | |
| "exclude_paths": [ | |
| ".env" | |
| ], | |
| "secrets": [ | |
| { | |
| "id": "s1", | |
| "type": "github_token", | |
| "path": "service_a.py", | |
| "line": 3, | |
| "visibility": "surface" | |
| }, | |
| { | |
| "id": "s2", | |
| "type": "github_token", | |
| "path": "service_b.py", | |
| "line": 3, | |
| "visibility": "deep", | |
| "requires_action": "inspect_file" | |
| }, | |
| { | |
| "id": "s3", | |
| "type": "github_token", | |
| "path": "service_c.py", | |
| "line": 3, | |
| "visibility": "cascading", | |
| "trigger_secret_id": "s1" | |
| } | |
| ], | |
| "conflict_map": { | |
| "s1": { | |
| "reveals": [ | |
| "s3" | |
| ], | |
| "blocks": [], | |
| "note": "Remediating service_a exposes the cascading leak in service_c which uses the same fallback key" | |
| }, | |
| "s2": { | |
| "reveals": [], | |
| "blocks": [ | |
| "s3" | |
| ], | |
| "note": "service_b key must be rotated before service_c rotation is safe" | |
| } | |
| } | |
| } | |