-
Notifications
You must be signed in to change notification settings - Fork 2
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.
Report security vulnerabilities by creating an issue in the GitHub repository. The product is under active development, and all vulnerability reports are investigated and addressed as appropriate.
When reporting, include:
- Description of the vulnerability
- Steps to reproduce (proof of concept)
- Potential impact
- Affected versions
See the Security Policy and 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-database - Verify Redis connectivity:
make start-redis - Check logs:
tail -f logs/server.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
tail -f logs/server.log
# Test Redis connection
redis-cli ping
# Check OAuth protected resource metadata
curl http://localhost:8080/.well-known/oauth-protected-resourceSee Debugging-Guide for comprehensive debugging procedures.
Server logs location:
- Development:
stdoutorlogs/server.log - Docker:
docker logs tmi-api-prod - Production: Configure via
log_dirin the server YAML configuration file (e.g.,/var/log/tmi)
Key log patterns:
# Authentication errors
grep "authentication failed" logs/server.log
# Database errors
grep "database error" logs/server.log
# WebSocket errors
grep "websocket" logs/server.log
# API errors (5xx)
grep "status=5" logs/server.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: Create a GitHub issue per the Security Policy
- 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
- Authentication
- Creating Your First Threat Model
- Understanding the User Interface
- Working with Data Flow Diagrams
- Managing Threats
- Collaborative Threat Modeling
- Using Notes and Documentation
- Timmy AI Assistant
- Metadata and Extensions
- Planning Your Deployment
- Terraform Deployment (AWS, OCI, GCP, Azure)
- Deploying TMI Server
- OCI Container Deployment
- Certificate Automation
- Deploying TMI Web Application
- Setting Up Authentication
- Database Setup
- Component Integration
- Post-Deployment
- Branding and Customization
- Monitoring and Health
- Cloud Logging
- Database Operations
- Security Operations
- Performance and Scaling
- Maintenance Tasks
- Getting Started with Development
- Architecture and Design
- API Integration
- Testing
- Contributing
- Extending TMI
- Dependency Upgrade Plans
- DFD Graphing Library Reference
- Migration Instructions