Question
What does siloscan need in order to load the 8 gitleaks rules its converter currently skips?
Parent: #48
scripts/convert_gitleaks.py converts 214 of gitleaks v8.30.1's 222 rules. The 8 it skips, and why, verbatim from the converter:
| skipped rule |
reason |
hashicorp-tf-password |
path constraint is a regex; siloscan paths are globs |
kubernetes-secret-yaml |
path constraint is a regex; siloscan paths are globs |
nuget-config-password |
path constraint is a regex; siloscan paths are globs |
pkcs12-file |
no regex; path-only rules have no siloscan mapping |
pypi-upload-token |
compiled regex exceeds the regex crate's default 10 MiB size limit |
vault-batch-token |
compiled regex exceeds the regex crate's default 10 MiB size limit |
| (2 further skips) |
re-run the converter to enumerate |
Three capability gaps behind them, each independently decidable:
- Regex path constraints. siloscan rules match paths with globs. Supporting a regex path constraint means a new field and a decision about precedence when both are present.
- Path-only rules.
pkcs12-file fires on a filename with no content pattern - a committed keystore is a finding because of what it is. siloscan has no rule shape for "this file existing is the finding". Worth having regardless of gitleaks.
- Regex size limit.
Regex::new defaults to a 10 MiB compiled program. RegexBuilder::size_limit raises it. The question is whether raising it globally is acceptable (compile time, memory) or whether these two rules should be rewritten narrower.
Note the overlap with the rest of this map: kubernetes-secret-yaml and pkcs12-file both target shapes #49 is adding corpus coverage for, and kubernetes-secret-yaml overlaps #52's territory.
Deliverable: a decision per gap, then implementation, then a converter run showing 222 of 222 (or a recorded reason for each remaining skip).
Question
What does siloscan need in order to load the 8 gitleaks rules its converter currently skips?
Parent: #48
scripts/convert_gitleaks.pyconverts 214 of gitleaks v8.30.1's 222 rules. The 8 it skips, and why, verbatim from the converter:hashicorp-tf-passwordkubernetes-secret-yamlnuget-config-passwordpkcs12-filepypi-upload-tokenvault-batch-tokenThree capability gaps behind them, each independently decidable:
pkcs12-filefires on a filename with no content pattern - a committed keystore is a finding because of what it is. siloscan has no rule shape for "this file existing is the finding". Worth having regardless of gitleaks.Regex::newdefaults to a 10 MiB compiled program.RegexBuilder::size_limitraises it. The question is whether raising it globally is acceptable (compile time, memory) or whether these two rules should be rewritten narrower.Note the overlap with the rest of this map:
kubernetes-secret-yamlandpkcs12-fileboth target shapes #49 is adding corpus coverage for, andkubernetes-secret-yamloverlaps #52's territory.Deliverable: a decision per gap, then implementation, then a converter run showing 222 of 222 (or a recorded reason for each remaining skip).