# .gitignore Configuration
This document explains the `.gitignore` configuration for the MCP server project.
## Key Exclusions
### ๐ Security & Secrets
- `.env*` files containing API keys (especially AVIATIONSTACK_API_KEY)
- `secrets.json` and similar secret files
- Local configuration overrides
### ๐ฆ Dependencies & Build Artifacts
- `node_modules/` - npm/yarn dependencies
- `dist/` - compiled TypeScript output
- `*.tsbuildinfo` - TypeScript build cache
### ๐ ๏ธ Development Files
- IDE/editor files (`.vscode/`, `.idea/`)
- OS-specific files (`.DS_Store`, `Thumbs.db`)
- Log files (`*.log`)
- Temporary folders (`tmp/`, `temp/`)
### ๐งช Testing & Debug
- `test-local.js` - local test files
- `debug-*.js` - debug scripts
- `test-results/` - test output
## Important Notes
### API Keys
The flight status tool uses the `AVIATIONSTACK_API_KEY` environment variable. This is properly excluded from git to prevent accidental exposure of API credentials.
### Compiled Output
The `dist/` folder is excluded because it contains compiled JavaScript that can be regenerated from source. This keeps the repository focused on source code.
### Local Development
Files like `.env.local`, `config.local.json` allow developers to have local overrides without affecting the shared codebase.
## Best Practices
1. **Never commit API keys** - Use environment variables
2. **Keep secrets separate** - Use `.env` files that are gitignored
3. **Regenerate builds** - Don't commit compiled output unless necessary
4. **Document environment setup** - Use `FLIGHT_API_SETUP.md` for API configuration
## Verification
To check what files are ignored:
```bash
git status --ignored
```
To see what files are tracked:
```bash
git ls-files
```
To verify sensitive files aren't tracked:
```bash
git ls-files | grep -E '\.(env|log|secret)'
```
## Adding New Patterns
When adding new tools or features, consider adding appropriate patterns to `.gitignore`:
- Tool-specific cache files
- Generated configuration files
- Additional secret/credential files
- Build artifacts from new tools