aws-samples / aws-security-reference-architecture-examples
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 41% duplication:
    • 12,723 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 5,237 duplicated lines
  • 981 duplicates
system41% (5,237 lines)
Duplication per Extension
yaml47% (4,561 lines)
py22% (676 lines)
Duplication per Component (primary)
aws_sra_examples/solutions/common55% (1,690 lines)
aws_sra_examples/solutions/config59% (915 lines)
aws_sra_examples/solutions/guardduty40% (559 lines)
aws_sra_examples/solutions/macie40% (524 lines)
aws_sra_examples/solutions/firewall_manager36% (336 lines)
aws_sra_examples/solutions/cloudtrail32% (276 lines)
aws_sra_examples/solutions/ec229% (209 lines)
aws_sra_examples/solutions/s328% (207 lines)
aws_sra_examples/solutions/iam40% (186 lines)
aws_sra_examples/utils/aws_control_tower30% (138 lines)
aws_sra_examples/solutions/securityhub9% (111 lines)
aws_sra_examples/utils69% (86 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G aws_sra_examples/solutions/common aws_sra_examples/solutions/common aws_sra_examples/solutions/config aws_sra_examples/solutions/config aws_sra_examples/solutions/common--aws_sra_examples/solutions/config 1097 aws_sra_examples/solutions/guardduty aws_sra_examples/solutions/guardduty aws_sra_examples/solutions/common--aws_sra_examples/solutions/guardduty 246 aws_sra_examples/solutions/macie aws_sra_examples/solutions/macie aws_sra_examples/solutions/common--aws_sra_examples/solutions/macie 254 aws_sra_examples/solutions/firewall_manager aws_sra_examples/solutions/firewall_manager aws_sra_examples/solutions/common--aws_sra_examples/solutions/firewall_manager 133 aws_sra_examples/solutions/ec2 aws_sra_examples/solutions/ec2 aws_sra_examples/solutions/common--aws_sra_examples/solutions/ec2 130 aws_sra_examples/solutions/s3 aws_sra_examples/solutions/s3 aws_sra_examples/solutions/common--aws_sra_examples/solutions/s3 90 aws_sra_examples/solutions/iam aws_sra_examples/solutions/iam aws_sra_examples/solutions/common--aws_sra_examples/solutions/iam 127 aws_sra_examples/utils/aws_control_tower aws_sra_examples/utils/aws_control_tower aws_sra_examples/solutions/common--aws_sra_examples/utils/aws_control_tower 62 aws_sra_examples/solutions/config--aws_sra_examples/solutions/guardduty 240 aws_sra_examples/solutions/config--aws_sra_examples/solutions/macie 223 aws_sra_examples/solutions/config--aws_sra_examples/solutions/firewall_manager 116 aws_sra_examples/solutions/config--aws_sra_examples/solutions/ec2 112 aws_sra_examples/solutions/config--aws_sra_examples/solutions/s3 94 aws_sra_examples/solutions/config--aws_sra_examples/solutions/iam 103 aws_sra_examples/solutions/config--aws_sra_examples/utils/aws_control_tower 50 aws_sra_examples/utils aws_sra_examples/utils aws_sra_examples/solutions/config--aws_sra_examples/utils 62 aws_sra_examples/solutions/guardduty--aws_sra_examples/solutions/macie 812 aws_sra_examples/solutions/guardduty--aws_sra_examples/solutions/iam 264 aws_sra_examples/solutions/guardduty--aws_sra_examples/utils/aws_control_tower 96 aws_sra_examples/solutions/guardduty--aws_sra_examples/utils 50 aws_sra_examples/solutions/macie--aws_sra_examples/solutions/s3 81 aws_sra_examples/solutions/macie--aws_sra_examples/utils/aws_control_tower 69 aws_sra_examples/solutions/macie--aws_sra_examples/utils 61 aws_sra_examples/solutions/cloudtrail aws_sra_examples/solutions/cloudtrail aws_sra_examples/solutions/cloudtrail--aws_sra_examples/solutions/common 191 aws_sra_examples/solutions/cloudtrail--aws_sra_examples/solutions/config 130 aws_sra_examples/solutions/cloudtrail--aws_sra_examples/solutions/guardduty 382 aws_sra_examples/solutions/cloudtrail--aws_sra_examples/solutions/macie 268 aws_sra_examples/solutions/cloudtrail--aws_sra_examples/solutions/firewall_manager 230 aws_sra_examples/solutions/cloudtrail--aws_sra_examples/solutions/iam 193 aws_sra_examples/solutions/firewall_manager--aws_sra_examples/solutions/guardduty 323 aws_sra_examples/solutions/firewall_manager--aws_sra_examples/solutions/macie 231 aws_sra_examples/solutions/firewall_manager--aws_sra_examples/solutions/iam 157 aws_sra_examples/solutions/ec2--aws_sra_examples/solutions/guardduty 63 aws_sra_examples/solutions/ec2--aws_sra_examples/solutions/macie 93 aws_sra_examples/solutions/ec2--aws_sra_examples/solutions/s3 290 aws_sra_examples/solutions/iam--aws_sra_examples/solutions/macie 284 aws_sra_examples/utils/aws_control_tower--aws_sra_examples/utils 160

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 981 duplicates...
Size#FoldersFilesLinesCode
102 x 2 aws_sra_examples/solutio...on_cfct_setup/templates
aws_sra_examples/solutio...on_cfct_setup/templates
sra-common-cfct-setup-main-ssm.yaml
sra-common-cfct-setup-main.yaml
79:181 (45%)
78:180 (46%)
view
61 x 2 aws_sra_examples/solutio...guardduty_org/templates
aws_sra_examples/solutio...cie/macie_org/templates
sra-guardduty-org-configuration-role....
sra-macie-org-configuration-role.yaml
8:75 (64%)
4:71 (55%)
view
60 x 2 aws_sra_examples/solutio...on_cfct_setup/templates
aws_sra_examples/solutio...on_cfct_setup/templates
sra-common-cfct-setup-main-ssm.yaml
sra-common-cfct-setup-main.yaml
14:74 (26%)
13:73 (27%)
view
48 x 2 aws_sra_examples/solutio...prerequisites/templates
aws_sra_examples/solutio...prerequisites/templates
sra-common-prerequisites-main-ssm.yaml
sra-common-prerequisites-main.yaml
13:61 (14%)
13:61 (14%)
view
47 x 2 aws_sra_examples/solutio...prerequisites/templates
aws_sra_examples/solutio...prerequisites/templates
sra-common-prerequisites-main-ssm.yaml
sra-common-prerequisites-main.yaml
191:240 (14%)
181:230 (14%)
view
44 x 2 aws_sra_examples/solutio...l_manager_org/templates
aws_sra_examples/solutio...l_manager_org/templates
sra-firewall-manager-org-waf-policy.yaml
sra-firewall-manager-org-waf-policy.yaml
26:69 (18%)
83:126 (18%)
view
38 x 2 aws_sra_examples/utils/a...rol_tower/prerequisites
aws_sra_examples/utils
prereq-lambda-s3-bucket.yaml
lambda-s3-buckets.yaml
66:107 (38%)
92:133 (30%)
view
37 x 2 aws_sra_examples/solutio...ement_account/templates
aws_sra_examples/solutio...ement_account/templates
sra-config-management-account-main-ss...
sra-config-management-account-main.yaml
47:84 (15%)
47:84 (15%)
view
33 x 2 aws_sra_examples/solutio...ement_account/templates
aws_sra_examples/solutio...ement_account/templates
sra-config-management-account-main-ss...
sra-config-management-account-main.yaml
217:250 (13%)
207:240 (13%)
view
32 x 2 aws_sra_examples/solutio...ement_account/templates
aws_sra_examples/solutio...ement_account/templates
sra-config-management-account-main-ss...
sra-config-management-account-main.yaml
182:215 (13%)
172:205 (13%)
view
32 x 2 aws_sra_examples/solutio...ement_account/templates
aws_sra_examples/solutio...ement_account/templates
sra-config-management-account-main-ss...
sra-config-management-account-main.yaml
15:46 (13%)
13:44 (13%)
view
31 x 2 aws_sra_examples/solutio...prerequisites/templates
aws_sra_examples/solutio...ement_account/templates
sra-common-prerequisites-main-ssm.yaml
sra-config-management-account-main-ss...
153:183 (9%)
130:160 (12%)
view
30 x 2 aws_sra_examples/solutio...ement_account/templates
aws_sra_examples/solutio...ement_account/templates
sra-config-management-account-main-ss...
sra-config-management-account-main.yaml
118:147 (12%)
113:142 (12%)
view
30 x 2 aws_sra_examples/solutio...prerequisites/templates
aws_sra_examples/solutio...prerequisites/templates
sra-common-prerequisites-main-ssm.yaml
sra-common-prerequisites-main.yaml
259:289 (8%)
249:279 (9%)
view
29 x 2 aws_sra_examples/solutio...guardduty_org/templates
aws_sra_examples/solutio...cie/macie_org/templates
sra-guardduty-org-configuration-role....
sra-macie-org-member-disable-role.yaml
43:75 (30%)
39:71 (32%)
view
29 x 2 aws_sra_examples/solutio...guardduty_org/templates
aws_sra_examples/solutio...cie/macie_org/templates
sra-guardduty-org-delivery-s3-bucket....
sra-macie-org-s3-bucket.yaml
43:74 (20%)
59:90 (18%)
view
29 x 2 aws_sra_examples/solutio...cie/macie_org/templates
aws_sra_examples/solutio...cie/macie_org/templates
sra-macie-org-configuration-role.yaml
sra-macie-org-member-disable-role.yaml
39:71 (26%)
39:71 (32%)
view
28 x 2 aws_sra_examples/solutio...prerequisites/templates
aws_sra_examples/solutio...ement_account/templates
sra-common-prerequisites-main.yaml
sra-config-management-account-main.yaml
148:175 (8%)
124:151 (11%)
view
26 x 2 aws_sra_examples/solutio...guardduty_org/templates
aws_sra_examples/solutio...cie/macie_org/templates
sra-guardduty-org-delete-detector-rol...
sra-macie-org-configuration-role.yaml
37:67 (29%)
33:63 (23%)
view
26 x 2 aws_sra_examples/solutio...guardduty_org/templates
aws_sra_examples/solutio...guardduty_org/templates
sra-guardduty-org-configuration-role....
sra-guardduty-org-delete-detector-rol...
37:67 (27%)
37:67 (29%)
view
Duplicated Units
The list of top 12 duplicated units.
See data for all 12 unit duplicates...
Size#FoldersFilesLinesCode
25 x 3 aws_sra_examples/solutio...ublic_access/lambda/src
aws_sra_examples/solutio...ment_account/lambda/src
aws_sra_examples/solutio...s_encryption/lambda/src
app.py
app.py
app.py
0:0 
0:0 
0:0 
view
22 x 2 aws_sra_examples/solutio...ie/macie_org/lambda/src
aws_sra_examples/solutio...uardduty_org/lambda/src
app.py
app.py
0:0 
0:0 
view
22 x 2 aws_sra_examples/solutio...ublic_access/lambda/src
aws_sra_examples/solutio...s_encryption/lambda/src
app.py
app.py
0:0 
0:0 
view
17 x 4 aws_sra_examples/solutio...dministrator/lambda/src
aws_sra_examples/solutio...oudtrail_org/lambda/src
aws_sra_examples/solutio...uardduty_org/lambda/src
aws_sra_examples/solutio..._manager_org/lambda/src
app.py
app.py
app.py
app.py
0:0 
0:0 
0:0 
0:0 
view
16 x 2 aws_sra_examples/solutio...ublic_access/lambda/src
aws_sra_examples/solutio...s_encryption/lambda/src
app.py
app.py
0:0 
0:0 
view
6 x 2 aws_sra_examples/solutio...ublic_access/lambda/src
aws_sra_examples/solutio...ublic_access/lambda/src
app.py
app.py
0:0 
0:0 
view
12 x 2 aws_sra_examples/solutio...rerequisites/lambda/src
aws_sra_examples/solutio...n_cfct_setup/lambda/src
app.py
app.py
0:0 
0:0 
view
13 x 4 aws_sra_examples/solutio...ublic_access/lambda/src
aws_sra_examples/solutio...ment_account/lambda/src
aws_sra_examples/solutio...rerequisites/lambda/src
aws_sra_examples/solutio...n_cfct_setup/lambda/src
app.py
app.py
app.py
app.py
0:0 
0:0 
0:0 
0:0 
view
8 x 4 aws_sra_examples/solutio...dministrator/lambda/src
aws_sra_examples/solutio...oudtrail_org/lambda/src
aws_sra_examples/solutio...uardduty_org/lambda/src
aws_sra_examples/solutio..._manager_org/lambda/src
app.py
app.py
app.py
app.py
0:0 
0:0 
0:0 
0:0 
view
8 x 2 aws_sra_examples/solutio...ie/macie_org/lambda/src
aws_sra_examples/solutio..._policy_acct/lambda/src
app.py
app.py
0:0 
0:0 
view
8 x 2 aws_sra_examples/solutio...ublic_access/lambda/src
aws_sra_examples/solutio...s_encryption/lambda/src
app.py
app.py
0:0 
0:0 
view
6 x 2 aws_sra_examples/solutio...ublic_access/lambda/src
aws_sra_examples/solutio...s_encryption/lambda/src
app.py
app.py
0:0 
0:0 
view