# Build outputs
bin/
obj/
dist/
src/M365SecurityDashboard.Api/wwwroot/

# Dependencies
node_modules/
.npm-cache/
.nuget-packages/
.dotnet-cli-home/

# IDE
.vs/
.vscode/
*.user
*.suo
*.userprefs
.idea/

# Secrets — NEVER commit these
appsettings.Production.json
appsettings.*.json
!appsettings.json
secrets.json
.env
.env.*

# Logs
*.log
dashboard.out.log
dashboard.err.log

# OS
.DS_Store
Thumbs.db

# Claude Code session files
.claude/

# Local tool files
dotnet
\#

# Database files (local data only)
*.db
*.sqlite
*.mdf
*.ldf
publish/
publish-install-test/
keys/

*.pfx
vigil365.pfx
# Local SQL backups and exported key rings are operational secrets.
backups/

# Installer payload — 50MB build artifact produced by scripts/build-installer.ps1
src/M365SecurityDashboard.GuiInstaller/payload.zip

# ACME account keys and issued certificates — private key material
certs/

# Installer build output — superseded by dist/, which is also ignored
installer-bin/

# Playwright output
src/m365-security-dashboard-client/test-results/
src/m365-security-dashboard-client/playwright-report/
