Address 3 product blockers from Pepe's review: - Add sort=-status to getFindingGroupResources and getLatestFindingGroupResources so FAIL resources appear before PASS in the drill-down list (sort kept as future-proofing even when filter[status]=FAIL makes it a no-op for now) - Add filter[status]=FAIL to both resource endpoints so drill-down only shows impacted resources, matching the count in the group header - Add filter[status]=FAIL to createResourceFindingResolutionUrl so muting a group only affects active FAIL findings, not all historical - Use .set() after appendSanitizedProviderFilters to guarantee hardcoded FAIL wins even if caller passes filter[status] in filters (prevents duplicate filter[status] params with undefined API behavior) - Apply symmetric .set() pattern in findings-by-resource.ts for consistency 26 tests (10 new). All passing. Judgment Day: 2 rounds, 0 discrepancies remaining.
Description
This repository hosts the UI component for Prowler, providing a user-friendly web interface to interact seamlessly with Prowler's features.
🚀 Production deployment
Docker deployment
Clone the repository
# HTTPS
git clone https://github.com/prowler-cloud/ui.git
# SSH
git clone git@github.com:prowler-cloud/ui.git
Build the Docker image
docker build -t prowler-cloud/ui . --target prod
Run the Docker container
docker run -p 3000:3000 prowler-cloud/ui
Local deployment
Clone the repository
# HTTPS
git clone https://github.com/prowler-cloud/ui.git
# SSH
git clone git@github.com:prowler-cloud/ui.git
Build the project
pnpm run build
Run the production server
pnpm start
🧪 Development deployment
Docker deployment
Clone the repository
# HTTPS
git clone https://github.com/prowler-cloud/ui.git
# SSH
git clone git@github.com:prowler-cloud/ui.git
Build the Docker image
docker build -t prowler-cloud/ui . --target dev
Run the Docker container
docker run -p 3000:3000 prowler-cloud/ui
Local deployment
Clone the repository
# HTTPS
git clone https://github.com/prowler-cloud/ui.git
# SSH
git clone git@github.com:prowler-cloud/ui.git
Install dependencies
pnpm install
Note: The pnpm install command will automatically configure Git hooks for code quality checks. If you experience issues, you can manually configure them:
git config core.hooksPath "ui/.husky"
Run the development server
pnpm run dev
Technologies Used
Git Hooks & Code Review
This project uses Git hooks to maintain code quality. When you commit changes to TypeScript/JavaScript files, the pre-commit hook can optionally validate them against our coding standards using Claude Code.
Enabling Code Review
To enable automatic code review on commits, add this to your .env file in the project root:
CODE_REVIEW_ENABLED=true
When enabled, the hook will:
- ✅ Validate your staged changes against
AGENTS.mdstandards - ✅ Check for common issues (any types, incorrect imports, styling violations, etc.)
- ✅ Block commits that don't comply with the standards
- ✅ Provide helpful feedback on how to fix issues
Disabling Code Review
To disable code review (faster commits, useful for quick iterations):
CODE_REVIEW_ENABLED=false
Or remove the variable from your .env file.
Requirements
- Claude Code CLI installed and authenticated
.envfile in the project root withCODE_REVIEW_ENABLEDset
Troubleshooting
If hooks aren't running after commits:
# Verify hooks are configured
git config --get core.hooksPath # Should output: ui/.husky
# Reconfigure if needed
git config core.hooksPath "ui/.husky"