Frequently Asked Questions (FAQ)
General Questions
What is Rippler?
Rippler is a comprehensive PR impact analysis tool for microservice-based systems. It performs automated impact analysis on code changes and notifies stakeholders of potential downstream effects across your microservices architecture.
Who should use Rippler?
- Engineering teams working with microservices architectures
- Organizations wanting to understand the impact of code changes
- Teams looking to improve code review processes with AI-powered insights
What languages/frameworks does Rippler support?
Rippler's services are built with:
- Backend Services: Java (Spring Boot), Python (FastAPI)
- Frontend: Next.js (React/TypeScript)
- AI/ML: Integration with OpenAI, Anthropic, and local Ollama models
Rippler can analyze code changes in repositories using any programming language, as the analysis is based on Git diffs and LLM-powered insights.
Setup & Configuration
How do I set up Rippler?
- Clone the repository with submodules:
git clone --recurse-submodules https://github.com/Citi-Rippler/rippler.git - Configure your environment:
cp .env.example .envand edit with your API keys - Start services:
make upordocker-compose up - Access the UI at
http://localhost:18000
See the Docker Setup Guide for detailed instructions.
What environment variables do I need to configure?
Required configuration in .env:
GITHUB_TOKEN- For GitHub API access and webhook verificationOPENAI_API_KEYorANTHROPIC_API_KEY- For LLM-powered analysis (or use local Ollama)DATABASE_URL- PostgreSQL connection stringREDIS_URL- Redis connection string
See the Getting Started Guide for complete configuration details.
Rippler Usage
How does Rippler analyze pull requests?
When a PR is opened in a monitored repository:
- GitHub sends a webhook to Rippler's API Gateway
- The Launchpad service processes the webhook and extracts PR information
- The Dependency Graph Engine identifies affected services
- The LLM Service provides AI-powered impact analysis
- Results are posted back to the GitHub PR as comments
- Stakeholders are notified of potential impacts
How do I configure which repositories Rippler monitors?
Configure monitored repositories in the Rippler UI or via the API Gateway. You'll need to:
- Add the repository to Rippler's database
- Configure a GitHub webhook pointing to your Rippler instance
- Set up proper authentication tokens
Security
How are security vulnerabilities detected?
Multiple layers:
- CodeQL: Static analysis of source code
- Dependabot: Scans dependencies for known vulnerabilities
- Secret scanning: Detects committed secrets
How do I respond to a security alert?
- Review the alert details
- Assess the impact
- Update the vulnerable dependency
- Test thoroughly
- Deploy the fix
What should I do if I accidentally commit a secret?
- Immediately revoke/rotate the compromised secret
- Remove it from Git history using
git filter-branchor BFG - Force push the cleaned history (coordinate with team)
- Update the secret in all environments
How often should I update dependencies?
- Security updates: Immediately
- Minor updates: Weekly (automated by Dependabot)
- Major updates: Monthly or quarterly (requires testing)
Docker
How are Rippler services containerized?
All Rippler services are containerized using Docker:
- Each service has its own Dockerfile
- Services are orchestrated using Docker Compose
- Images can be built locally or pulled from container registry
How do I rebuild a specific service?
# Rebuild and restart a specific service
docker-compose up -d --build launchpad
# Or using Make
make rebuild SERVICE=launchpad
Where can I find service logs?
# View logs for all services
docker-compose logs -f
# View logs for a specific service
docker-compose logs -f launchpad
Troubleshooting
Rippler services are not starting
Common causes:
- Port conflicts (check if ports 18000-18010, 5432, 6379 are available)
- Missing environment variables in
.env - Docker daemon not running
Solution: Check logs with docker-compose logs and verify your configuration.
GitHub webhooks are not being received
Common causes:
- Webhook URL is incorrect or not accessible
- Webhook secret mismatch
- Firewall blocking incoming requests
Solution: Verify webhook configuration in GitHub repository settings and check API Gateway logs.
LLM Service is not responding
Common causes:
- Missing or invalid API keys (OPENAI_API_KEY, ANTHROPIC_API_KEY)
- Rate limiting from LLM provider
- Network connectivity issues
Solution: Check LLM service logs and verify API key configuration.
Database connection errors
Common causes:
- PostgreSQL container not running
- Incorrect DATABASE_URL in
.env - Database not initialized
Solution: Run docker-compose up -d postgres and check connection string.
Contributing
Best Practices
How should I configure my microservices for Rippler?
- Ensure each service has clear ownership and boundaries
- Document service dependencies explicitly
- Use semantic versioning for service releases
- Tag PRs with service identifiers for better tracking
- Keep service documentation up to date
How can I improve the accuracy of impact analysis?
- Provide detailed PR descriptions
- Use conventional commit messages
- Maintain accurate service dependency mappings
- Configure custom analysis rules if needed
- Review and update the dependency graph regularly
Contributing
How do I contribute to Rippler?
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a PR with clear description
See Contribution Guide for detailed instructions.
What makes a good contribution?
- Solves a real problem or adds valuable features
- Well documented with clear code comments
- Includes tests where applicable
- Follows existing code patterns and architecture
- Doesn't introduce security vulnerabilities
Getting Help
Where can I get help?
- Check this FAQ
- Review the Documentation
- Search existing issues
- Open a new issue with the
questionlabel - Check the Architecture Overview for system understanding
How do I report a bug?
Open an issue on GitHub and include:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Docker version, etc.)
- Relevant logs or screenshots
How do I request a feature?
Open an issue on GitHub and explain:
- The problem it solves
- Proposed solution
- Use cases and benefits
- Any alternative approaches considered
Can't find your question? Open an issue with the question label.