- Issues
- ISSUE-406
ISSUE-406MediumPipeline Composition
Forbidden override of required template
Control:CTRL-405Pipelines must include templates
📋 What is this?
A required CI/CD template, as defined in your Policy controls, has been overridden in the project pipeline.
⚠️ Impact
Overriding required templates can lead to insecure pipelines that bypass your policy. For example, overriding a SAST template might bypass mandatory checks.
🔧 How to fix
Remove overrides from the project CI/CD configuration. If overrides are relevant, include them in the required template or create a new one.
✗ BeforeThe template's security-scan job is overridden and made manual.
# .gitlab-ci.yml: ❌ Overrides required template jobinclude: - project: my-org/ci-templates ref: v2.1.0 file: /templates/security.yml
# Overrides the security-scan job from the templatesecurity-scan: script: - echo "Security scan disabled for speed" when: manual✓ AfterTemplate jobs run as designed, configuration via variables.
# .gitlab-ci.yml: ✅ Template included without overridesinclude: - project: my-org/ci-templates ref: v2.1.0 file: /templates/security.yml
# No local overrides: template jobs run as designed# Use variables for customization:variables: SECURITY_SCAN_LEVEL: "high"💡 Tips
- Design templates with configurable variables so teams don't need to override jobs.
- Plumber shows exactly which job keys are overridden in the issue details.
- Consider making critical template jobs non-overridable by design.
⚙️ Configure this control
On the Plumber Platform: open the Policies page and set control CTRL-405 on the policy that governs the project.
With the CLI alone: set it in your configuration file. Every field and default is in the controls configuration reference, CTRL-405.