This directory contains comprehensive documentation for the NPQ (Node Package Quality) security auditing tool.
Configuration and usage of optional security features, including recent improvements and bug fixes.
Detailed documentation of the Age Marshall security component that validates package age and maturity.
The feature/ directory contains detailed documentation for specific features and implementations:
test-coverage-improvements.md- Comprehensive test coverage enhancements that improved overall coverage from 84.4% to 93.39%signature-verification-fix.md- Critical bug fix for signature verification with version ranges (e.g.,@angular/common@^20.2.4)
auto-continue.md- Documentation for the auto-continue feature that streamlines package installation workflowscustom-registry.md- Authenticated default and scoped npm-compatible registry configuration, routing, and failure behaviorexit-codes.md- Reference fornpqandnpq-heroprocess exit behaviorexpired-domains.md- Evidence levels, external requests, privacy, and limitations for maintainer-domain checksmalicious-package.md- Documentation for known-malicious package detection through Snyk/OSV datapacote-dependency-reduction.md- Implementation summary for optional pacote dependency reduction
- Each feature gets its own markdown file in
feature/ - Core functionality documented at the root docs level
- Technical implementation details included with code examples
- User-facing configuration documented with usage examples
- Overview: Brief description of the feature/component
- Technical Design: Architecture and implementation details
- Usage Examples: Practical examples with code snippets
- Testing: Coverage and validation information
- Future Considerations: Maintenance and evolution notes
Marshall components are the core security validation modules in NPQ. Each marshall focuses on a specific security concern:
- Age Marshall (
age.marshall.md) - Package age and maturity validation - Signature Marshall - NPM registry signature verification (see
signature-verification-fix.md) - Provenance Marshall - Package build attestation verification
- Snyk Marshall - Vulnerability database integration
- Typosquatting Marshall - Package name similarity detection
When adding new features or making significant changes:
- Feature Documentation: Create a new file in
feature/directory - Update Index: Add entry to this README
- Cross-Reference: Update related documentation files
- Examples: Include practical usage examples
- Testing: Document test coverage and validation
| Topic | File | Purpose |
|---|---|---|
| Optional Features | optional-features.md |
Feature configuration and recent improvements |
| Age Validation | age.marshall.md |
Package age and maturity security checks |
| Test Coverage | feature/test-coverage-improvements.md |
Recent test suite enhancements |
| Signature Verification | feature/signature-verification-fix.md |
Version range bug fix and validation |
| Auto-Continue | feature/auto-continue.md |
Automated installation workflow |
| Custom Registries | feature/custom-registry.md |
Authenticated npm-compatible registry configuration and privacy behavior |
| Exit Codes | feature/exit-codes.md |
CLI and package-manager passthrough exit behavior |
| Expired Domains | feature/expired-domains.md |
Maintainer-domain DNS and RDAP evidence, privacy, and limitations |
| Malicious Packages | feature/malicious-package.md |
Known-malicious package detection and reporting |
| Dependency Reduction | feature/pacote-dependency-reduction.md |
Optional dependency management |
- Development - local setup, workflows, and useful commands.
- Testing - test commands, test organization, and verification expectations.
- Architecture - repository structure, package boundaries, and important flows.
- Conventions - coding, documentation, and maintenance conventions.
- Custom registry support - approved design for npm-compatible Artifactory and private registry support.
- Expired-domain maintainer identity warnings - approved design for attributable expired-domain warnings.
- Expired-domain resolved version - design for resolving the exact dependency version for expired-domain checks.
- Custom registry support - task-by-task implementation plan for issue #429.
- Expired-domain resolved version - implementation plan for exact dependency-version resolution in expired-domain checks.
- Expired-domain maintainer identity warnings - test-first implementation plan for attributable expired-domain warnings.