Safeguard
Developer Tools•

Who should own scanner configuration: platform team or each repo?

Central, per repo or layered: how platform teams decide who owns scanner settings, with a decision table and a layered model that usually works.

Safeguard Security Team
3 min read

Own the policy centrally (what blocks, what warns, which severities) and let repositories own scope (paths, languages, known false positives) with expiry dates. That layered split keeps standards consistent without forcing the platform team to approve every single ignore rule or path exclusion that a team needs.

Three models compared

ModelHow it worksStrengthWeakness
Fully centralOne config in the platform repo, callers cannot change itConsistent, easy to auditSlow to adapt; teams work around it
Fully per repoEach repo has its own config fileFast, local knowledgeDrift, weak coverage, nothing to compare
LayeredCentral defaults, repo level overrides inside limitsBalanceNeeds tooling to show overrides

What belongs at each layer

Central layer:

  • Severity thresholds for block and warn
  • Which scan types run at which stage
  • License allow and deny tiers
  • Expiry rules for exceptions

Repository layer:

  • Paths to exclude, such as vendored code or generated files
  • Language or framework settings
  • Suppressions for specific findings, with a reason and a date

Service criticality can add a middle layer. A payments service may use stricter thresholds than an internal tool. Tag repositories with a property and choose the policy from the tag.

How to keep overrides honest

Overrides are where drift hides. Three habits help:

  1. Store overrides in the repo as a file that needs code owner review.
  2. Require a reason and an expiry date on every suppression.
  3. Report the count of active overrides per team each month. A rising count is a signal, not a verdict.

Handling disagreement

When a team believes a central rule is wrong, ask for evidence: a finding, the code path, and why it is not exploitable. Reachability data helps here, because it shows whether the vulnerable code is actually called. If the rule is wrong, change it centrally so every team benefits.

A starting setup

Put defaults in a shared repo, version them with tags, and let the shared pipeline fetch the policy at the pinned version. Add a small file in each repo, for example security.yaml, that can only narrow scope or add dated suppressions. Anything that lowers a severity threshold needs a platform team approval.

Quick check

Is a fully central config ever right?

Yes, for a small org or a regulated service where uniformity matters more than speed. Even then, provide an exception route.

How do we stop teams ignoring everything?

Require reasons and expiry dates, review overrides by code owners, and report counts so the pattern is visible.

Safeguard supports organization level policies and gates and reachability analysis, which can help ground override discussions in evidence.

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.