You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
String eval qq{} in API.pm and Service.pm replaced with safe eval { require $file }
Symbolic reference string eval in DataAsYaml.pm replaced with no strict 'refs'
Removed defunct .travis.yml
Added .env*, .DS_Store, IDE dirs to .gitignore
Remaining Items
Bare die statements (medium) — 8 instances across Service.pm, Images.pm, and Specs/Roles/Service.pm use die without error messages. Makes debugging harder for users. (Partially addressed by PR fix: descriptive error messages and dead code removal #11)
Test coverage gaps (medium) — Routes.pm, API.pm factory, Service.pm internals, Helpers/DataAsYaml.pm, and Roles modules lack direct unit tests. Estimated ~60-70% coverage.
Version string validation (low) — BUILD_version() regex m{/(v[0-9\.]+)} is permissive. Could restrict to v\d+\.\d+ for robustness.
Audit Findings — 2026-04-10
Comprehensive maintainability and security audit of the codebase.
Fixed (PR #17)
eval qq{}in API.pm and Service.pm replaced with safeeval { require $file }no strict 'refs'.travis.yml.env*,.DS_Store, IDE dirs to.gitignoreRemaining Items
diestatements (medium) — 8 instances across Service.pm, Images.pm, and Specs/Roles/Service.pm usediewithout error messages. Makes debugging harder for users. (Partially addressed by PR fix: descriptive error messages and dead code removal #11)BUILD_version()regexm{/(v[0-9\.]+)}is permissive. Could restrict tov\d+\.\d+for robustness.Notes
🤖 Created by Kōan from audit session