Background
Currently, our security tools use a hybrid architecture:
- Go-native tools: SAST (Phase 7), Secrets Scanner (Phase 8), Security Bundle Orchestrator (Phase 6)
- Python wrappers: SCA (Phase 1), Container (Phase 2), IaC (Phase 3), License (Phase 4), DAST (Phase 5), SBOM (Phase 9)
Problem
Python wrappers introduce:
- Runtime overhead: Python startup + Go binary execution
- Dependency complexity: Python + Go environments required
- Distribution overhead: Larger Docker images, slower CI pipelines
- Maintenance overhead: Two language stacks to maintain
Proposal
Migrate Python wrapper tools to native Go implementations while keeping Python tools as optional backends for specific integrations.
Migration Plan
Phase 1: SCA (Phase 1) - High Priority
Phase 2: Container (Phase 2) - High Priority
Phase 3: SBOM Generator (Phase 9) - Medium Priority
Phase 4: IaC (Phase 3) - Low Priority (Keep Python)
Phase 5: License (Phase 4) - Low Priority (Keep Python)
Phase 6: DAST (Phase 5) - Low Priority (Keep Python)
Benefits
- Single binary distribution: One Go binary for all security tools
- Faster startup: No Python interpreter overhead
- Smaller Docker images: No Python runtime needed
- Simpler CI/CD: Go binary only, no pip install
- Better cross-compilation: Go builds for any platform
- Unified codebase: One language, one toolchain, one mental model
Acceptance Criteria
References
- Current Go tools: SAST, Secrets Scanner, Security Bundle Orchestrator
- Current Python tools: SCA, Container, IaC, License, DAST, SBOM
- Go CLI framework: Cobra (already in use)
- Go testing: Go test + testify (already in use)
/cc @dev-team
Background
Currently, our security tools use a hybrid architecture:
Problem
Python wrappers introduce:
Proposal
Migrate Python wrapper tools to native Go implementations while keeping Python tools as optional backends for specific integrations.
Migration Plan
Phase 1: SCA (Phase 1) - High Priority
Phase 2: Container (Phase 2) - High Priority
Phase 3: SBOM Generator (Phase 9) - Medium Priority
Phase 4: IaC (Phase 3) - Low Priority (Keep Python)
Phase 5: License (Phase 4) - Low Priority (Keep Python)
Phase 6: DAST (Phase 5) - Low Priority (Keep Python)
Benefits
Acceptance Criteria
References
/cc @dev-team