Skip to content

Commit bfd2f6b

Browse files
authored
fix(misconf): handle tofu files in module detection (#9486)
Signed-off-by: nikpivkin <[email protected]>
1 parent e4af279 commit bfd2f6b

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

pkg/iac/scanners/terraform/scanner.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,13 @@ func (s *Scanner) isRootModule(target fs.FS, dir string) bool {
225225
s.logger.Error("Failed to read dir", log.FilePath(dir), log.Err(err))
226226
return false
227227
}
228+
suffixes := []string{".tf", ".tf.json", ".tofu", ".tofu.json"}
229+
228230
for _, file := range files {
229-
if strings.HasSuffix(file.Name(), ".tf") || strings.HasSuffix(file.Name(), ".tf.json") {
230-
return true
231+
for _, suf := range suffixes {
232+
if strings.HasSuffix(file.Name(), suf) {
233+
return true
234+
}
231235
}
232236
}
233237
return false

pkg/iac/scanners/terraform/scanner_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1257,3 +1257,22 @@ deny contains res if {
12571257

12581258
assert.Len(t, failed, 1)
12591259
}
1260+
1261+
func Test_ScanTofuFiles(t *testing.T) {
1262+
fsys := testutil.CreateFS(t, map[string]string{
1263+
"code/main.tofu": `resource "aws_s3_bucket" "this" {}`,
1264+
"rules/check.rego": emptyBucketCheck,
1265+
})
1266+
1267+
scanner := New(
1268+
rego.WithPolicyNamespaces("user"),
1269+
rego.WithPolicyDirs("rules"),
1270+
rego.WithPolicyFilesystem(fsys),
1271+
)
1272+
1273+
results, err := scanner.ScanFS(t.Context(), fsys, "code")
1274+
require.NoError(t, err)
1275+
1276+
assert.Len(t, results, 1)
1277+
assert.Len(t, results.GetFailed(), 1)
1278+
}

0 commit comments

Comments
 (0)