
__pycache__/
.coverage
.coverage.*
.docker-data/
.DS_Store
.e2e-api.log
.env
.env.*
.env.prod
# Exceptions, and they must come *after* the patterns above: git takes the last matching rule, so a
# negation written earlier in the file is silently overridden. That is not a hypothetical — the `!`
# line used to sit at the top, `.env.*` re-ignored it, and `.env.prod.example` was never committed.
# `scripts/init_secrets.sh` reads that file, so the first documented step of self-hosting failed for
# anyone who cloned the repository. It was caught by CI running the same step.
!.env.example
!.env.prod.example
.hypothesis/
.idea/
.mypy_cache/
.next/
.proofstep/
.pytest_cache/
.ruff_cache/
.turbo/
.venv/
.vscode/
*.egg-info/
*.key
*.pem
*.proofstep.local.yaml
*.py[cod]
*.swp
*.tsbuildinfo
# Database dumps. Never committed: they contain every tenant's data, and a backup in a git history
# Docker volumes
# Editors / OS
# is a backup with no access control and no retention.
# Node
# Proofstep local state
# Python
# Reports a local run drops in the working tree. The name comes from the suite, so the pattern has
# Secrets and local config — never commit these
# The e2e stack's server log, written next to the repo so a CI failure can print it.
# to cover all of them rather than the default filename only.
~/.proofstep/
backups/
build/
coverage.xml
credentials.json
dist/
htmlcov/
node_modules/
out/
proofstep-*.json
secrets/
venv/
