Implemented Python dependency vulnerability enforcement in CI with a documented, auditable exception flow.
Delivered Scope
Added dedicated CI workflow for dependency scanning:
.github/workflows/python-dependency-security.yml
Runs pip-audit on backend dependencies.
Added policy gate script:
backend/scripts/pip_audit_gate.py
Blocks unresolved HIGH / CRITICAL findings.
Treats missing severity metadata conservatively as HIGH.
Added explicit allowlist mechanism:
ops/security/pip-audit-allowlist.json
Supports temporary exceptions with required metadata and expiry.
Added documentation for exception handling:
docs/security/dependency-exceptions.md
Added release-time dependency gate:
docker-release.yml now runs pip-audit + policy gate before image build/push.
Acceptance Criteria Mapping
CI blocks vulnerable dependency updates
Met: unresolved high/critical findings fail the dependency security workflow and release pipeline.
Security exception flow is documented
Met: exception process, required fields, expiry rules, and auditability are documented in docs/security/dependency-exceptions.md.
Notes
No database migration required.
This closes NX-202 from implementation perspective.
## NX-202 Completed
Implemented Python dependency vulnerability enforcement in CI with a documented, auditable exception flow.
### Delivered Scope
- Added dedicated CI workflow for dependency scanning:
- `.github/workflows/python-dependency-security.yml`
- Runs `pip-audit` on backend dependencies.
- Added policy gate script:
- `backend/scripts/pip_audit_gate.py`
- Blocks unresolved `HIGH` / `CRITICAL` findings.
- Treats missing severity metadata conservatively as `HIGH`.
- Added explicit allowlist mechanism:
- `ops/security/pip-audit-allowlist.json`
- Supports temporary exceptions with required metadata and expiry.
- Added documentation for exception handling:
- `docs/security/dependency-exceptions.md`
- Added release-time dependency gate:
- `docker-release.yml` now runs `pip-audit` + policy gate before image build/push.
### Acceptance Criteria Mapping
- **CI blocks vulnerable dependency updates**
Met: unresolved high/critical findings fail the dependency security workflow and release pipeline.
- **Security exception flow is documented**
Met: exception process, required fields, expiry rules, and auditability are documented in `docs/security/dependency-exceptions.md`.
### Notes
- No database migration required.
- This closes NX-202 from implementation perspective.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Goal
Prevent shipping known vulnerable Python dependencies.
Scope
pip audit) in CI.Acceptance Criteria
NX-202 Completed
Implemented Python dependency vulnerability enforcement in CI with a documented, auditable exception flow.
Delivered Scope
.github/workflows/python-dependency-security.ymlpip-auditon backend dependencies.backend/scripts/pip_audit_gate.pyHIGH/CRITICALfindings.HIGH.ops/security/pip-audit-allowlist.jsondocs/security/dependency-exceptions.mddocker-release.ymlnow runspip-audit+ policy gate before image build/push.Acceptance Criteria Mapping
CI blocks vulnerable dependency updates
Met: unresolved high/critical findings fail the dependency security workflow and release pipeline.
Security exception flow is documented
Met: exception process, required fields, expiry rules, and auditability are documented in
docs/security/dependency-exceptions.md.Notes