-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Help
This page outlines how to get support, access community resources, and report issues with TMI.
The primary home for TMI development and issue tracking:
- Repository: https://github.com/ericfitz/tmi
- Issues: https://github.com/ericfitz/tmi/issues
- Discussions: https://github.com/ericfitz/tmi/discussions
Comprehensive documentation is available in multiple locations:
- Wiki: This wiki provides operational and user-facing documentation
-
Source Docs: Technical documentation in
/docsdirectory of the repository - API Specs: OpenAPI and AsyncAPI specifications at API-Specifications
- Code Comments: Inline documentation in source code
Try TMI before deploying:
- Web Application: https://www.tmi.dev
- API Endpoint: https://api.tmi.dev
- TMI Clients: Generated SDK examples at https://github.com/ericfitz/tmi-clients
- Terraform Analyzer: Infrastructure-as-code integration examples
- OAuth Callback Stub: Testing OAuth integrations
When reporting bugs, include:
- Description: Clear description of the problem
- Steps to Reproduce: Detailed steps to recreate the issue
- Expected Behavior: What should happen
- Actual Behavior: What actually happens
-
Environment:
- TMI version (git commit hash or release version)
- Operating system and version
- Browser (for web client issues)
- Database versions (PostgreSQL, Redis)
- Logs: Relevant log output (sanitize sensitive data)
- Screenshots: If applicable
Example Bug Report:
## Description
Server crashes when creating a threat model with invalid JSON in metadata field.
## Steps to Reproduce
1. Navigate to threat model creation page
2. Add metadata field with value: `{invalid json`
3. Click "Create Threat Model"
4. Server returns 500 error
## Expected Behavior
Should validate JSON and return 400 Bad Request with validation error.
## Actual Behavior
Server crashes with panic, returns 500 Internal Server Error.
## Environment
- TMI version: commit abc123def
- OS: Ubuntu 22.04 LTS
- PostgreSQL: 15.3
- Redis: 7.0.11
## Logspanic: invalid character 'i' looking for beginning of object key string ...
When requesting features:
- Use Case: Describe the problem you're trying to solve
- Proposed Solution: How you envision the feature working
- Alternatives: Other solutions you've considered
- Benefits: Who benefits and how
- Examples: Similar features in other tools (if applicable)
Create feature requests in GitHub Discussions first to gauge interest before opening an issue.
DO NOT report security vulnerabilities through public GitHub issues.
Instead:
- Email: security@tmi.dev
-
Include:
- Description of the vulnerability
- Steps to reproduce (proof of concept)
- Potential impact
- Affected versions
- Response Time: Expect acknowledgment within 48 hours
- Disclosure: Coordinated disclosure after patch is available
See Security-Best-Practices for security policies.
- Search Documentation: Check this wiki and FAQ
- Search Issues: Look for existing GitHub issues
- Check Logs: Review server and application logs
- Try Common Fixes: See Common-Issues for frequent problems
For usage questions:
- GitHub Discussions (preferred)
- Create a GitHub issue with "question" label
For deployment help:
- Review Planning-Your-Deployment
- Check Common-Issues
- Post in GitHub Discussions
For API integration:
- Review API-Integration and API-Specifications
- Check generated SDK documentation
- Post in GitHub Discussions with "api" label
For development:
- Review Getting-Started-with-Development
- Check Architecture-and-Design
- Post in GitHub Discussions with "development" label
When asking for help, provide:
- Context: What are you trying to accomplish?
- What You've Tried: Steps you've already taken
- Environment: OS, TMI version, deployment method
- Logs/Errors: Relevant error messages (sanitized)
- Configuration: Relevant config (remove secrets!)
Server won't start:
- Check port availability:
lsof -i :8080 - Verify database connectivity:
make start-postgres - Verify Redis connectivity:
make start-redis - Check logs:
tail -f logs/tmi.log
See Common-Issues#server-startup-problems for details.
Authentication failing:
- Verify OAuth credentials
- Check callback URL configuration
- Test provider connectivity
- Review authentication logs
See Common-Issues#authentication-problems for details.
WebSocket not connecting:
- Check TLS configuration (wss:// vs ws://)
- Verify firewall/proxy settings
- Test Redis connectivity
- Check browser console for errors
See Common-Issues#websocket-problems for details.
# Check service status
make status
# View server logs
make logs
# Test database connection
make db-ping
# Test Redis connection
redis-cli ping
# Run health checks
curl http://localhost:8080/health
# Check OAuth configuration
curl http://localhost:8080/.well-known/openid-configurationSee Debugging-Guide for comprehensive debugging procedures.
Server logs location:
- Development:
stdoutorlogs/tmi.log - Docker:
docker logs tmi-server - Production: Configure with
LOG_FILEenvironment variable
Key log patterns:
# Authentication errors
grep "authentication failed" logs/tmi.log
# Database errors
grep "database error" logs/tmi.log
# WebSocket errors
grep "websocket" logs/tmi.log
# API errors (5xx)
grep "status=5" logs/tmi.logSee Debugging-Guide#log-analysis for detailed log analysis.
Found an error or gap in documentation? Help improve it!
This wiki is maintained in the tmi.wiki repository:
- Fork the repository
- Make your changes
- Submit a pull request
- Describe what you changed and why
Documentation in the main repository (/docs):
- Fork ericfitz/tmi
- Update documentation in
/docsdirectory - Follow existing structure and style
- Submit a pull request
See Contributing for contribution guidelines.
- Be courteous and professional
- Respect different perspectives and experience levels
- Provide constructive feedback
- Help others learn and grow
- Use clear, descriptive titles
- Provide sufficient context
- Format code and logs properly
- Use markdown formatting
- Maintainers and community members are often volunteers
- Complex issues take time to investigate
- Not all feature requests can be implemented
- Check Documentation: Wiki, FAQ, source docs
- Search Issues: Look for existing reports
- Self-Diagnosis: Use Debugging-Guide and Common-Issues
- Community Help: Post in GitHub Discussions
- Bug Report: Create GitHub issue with full details
- Security Issue: Email security@tmi.dev (do not post publicly)
- FAQ - Frequently asked questions
- Common-Issues - Solutions to frequent problems
- Debugging-Guide - Systematic debugging procedures
- Performance-Troubleshooting - Performance optimization
- Contributing - Contributing to TMI
- GitHub Repository
- Using TMI for Threat Modeling
- Accessing TMI
- Creating Your First Threat Model
- Understanding the User Interface
- Working with Data Flow Diagrams
- Managing Threats
- Collaborative Threat Modeling
- Using Notes and Documentation
- Metadata and Extensions
- Planning Your Deployment
- Deploying TMI Server
- Deploying TMI Web Application
- Setting Up Authentication
- Database Setup
- Component Integration
- Post-Deployment
- Monitoring and Health
- Database Operations
- Security Operations
- Performance and Scaling
- Maintenance Tasks