Getting Help - ericfitz/tmi GitHub Wiki
Getting Help
This page outlines how to get support, access community resources, and report issues with TMI.
Official Support Channels
GitHub Repository
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
Documentation
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
Community Resources
Public Instance
Try TMI before deploying:
- Web Application: https://www.tmi.dev
- API Endpoint: https://api.tmi.dev
Example Projects
- 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
Reporting Issues
Bug Reports
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
## Logs
panic: invalid character 'i' looking for beginning of object key string ...
Feature Requests
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.
Security Vulnerabilities
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.
Getting Help
Before Asking
- 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
Where to Ask
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
Information to Include
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!)
Self-Help Resources
Quick Diagnostic Steps
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.
Diagnostic Commands
# 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-resource
See Debugging-Guide for comprehensive debugging procedures.
Log Analysis
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.log
See Debugging-Guide#log-analysis for detailed log analysis.
Contributing Documentation
Found an error or gap in documentation? Help improve it!
Wiki Contributions
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
Source Documentation
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.
Community Guidelines
Be Respectful
- Be courteous and professional
- Respect different perspectives and experience levels
- Provide constructive feedback
- Help others learn and grow
Be Clear
- Use clear, descriptive titles
- Provide sufficient context
- Format code and logs properly
- Use markdown formatting
Be Patient
- Maintainers and community members are often volunteers
- Complex issues take time to investigate
- Not all feature requests can be implemented
Escalation Path
- 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
Related Resources
- 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