143 lines
2.9 KiB
Plaintext
143 lines
2.9 KiB
Plaintext
# Build context for backend/Dockerfile and app/Dockerfile is the repo root, so this
|
|
# file decides what is even eligible to be copied into those images.
|
|
|
|
.git/
|
|
.gitignore
|
|
.gitignore.local
|
|
.claude/
|
|
.cursor/
|
|
.vscode/
|
|
.idea/
|
|
|
|
# Secrets are passed at runtime via compose `env_file` — never baked into a layer.
|
|
**/.env
|
|
**/.env.*
|
|
!**/.env.example
|
|
backend/credentials/*.json
|
|
|
|
**/__pycache__/
|
|
**/*.py[cod]
|
|
**/*.egg-info/
|
|
.venv/
|
|
venv/
|
|
env/
|
|
.mypy_cache/
|
|
.pytest_cache/
|
|
.ruff_cache/
|
|
|
|
# Frontend has its own context (./frontend) and its own .dockerignore; nothing of it
|
|
# belongs in a Python image, and node_modules would dominate the context transfer.
|
|
frontend/
|
|
|
|
# Candidate CVs live on the bind mount, not inside an image.
|
|
backend/inbox/decoded_attachments/
|
|
|
|
# Ship revision scripts so `DB_AUTO_MIGRATE=true` can `upgrade head` in Docker.
|
|
# Fileless ORM drift (DB_AUTOGENERATE) still covers leftover model gaps.
|
|
|
|
docs/
|
|
tests/
|
|
scripts/
|
|
tools/
|
|
*.md
|
|
*.log
|
|
tmp/
|
|
temp/
|
|
tests/**
|
|
/backend/tests/**
|
|
|
|
migrations/** */
|
|
.DS_Store
|
|
.AppleDouble
|
|
.LSOverride
|
|
Icon
|
|
?
|
|
._*
|
|
dist/**
|
|
dist/**/*
|
|
# Editor / IDE
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
**pycache__/
|
|
**pycache**
|
|
# Claude / local AI tooling
|
|
.claude/
|
|
.audit.js
|
|
|
|
# Local macOS launcher (not shared — machine-specific)
|
|
Start.command
|
|
start.command
|
|
|
|
# Backups
|
|
.backup-prebrand/
|
|
*.bak
|
|
*.backup
|
|
*/node_modules/*
|
|
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.egg-info/
|
|
.venv/
|
|
venv/
|
|
env/
|
|
|
|
# Environment / secrets — NEVER commit real .env files
|
|
.env
|
|
**/.env
|
|
.env.*
|
|
**/.env.*
|
|
!.env.example
|
|
!**/.env.example
|
|
!frontend/.env.development
|
|
!frontend/.env.production
|
|
|
|
# Postman/Insomnia environments holding real API keys
|
|
*.postman_environment.local.json
|
|
|
|
# Logs & temp
|
|
*.log
|
|
tmp/
|
|
temp/
|
|
.cache/
|
|
|
|
# Frontend build
|
|
node_modules/
|
|
frontend/dist/
|
|
|
|
# Uploaded content — user data, never in git
|
|
backend/uploads/
|
|
|
|
# Google OAuth ADC / Desktop client secrets — never commit
|
|
backend/credentials/*.json
|
|
|
|
**.pdf
|
|
# Per-machine alembic autogen revisions only — the old bare `**_**_**.py`
|
|
# also swallowed any module with two underscores (e.g. test_talent_plugins.py).
|
|
backend/migrations/versions/**_**_**.py
|
|
Utopia-ai-hr-ats-portal 1.pem
|
|
|
|
# Local-only Compose overrides (never deployed)
|
|
docker.local.env
|
|
**/.env**
|
|
|
|
# Paper form source documents (Annexure A/E/J) — reference material, not code.
|
|
# Root-anchored: backend/candidate_forms/ is the forms domain package and IS tracked.
|
|
/candidate_forms/
|
|
frontend/dist/** */
|
|
docker.local.frontend/dist/** */
|
|
frontend/dist/index.html
|
|
frontend/dist/index.html
|
|
# `tests/**` and `/backend/tests/**` used to sit here. Both test suites are
|
|
# tracked and both are run by scripts/ci-checks.sh, so the rules were inert for
|
|
# the files that already existed and did nothing but silently swallow NEW ones:
|
|
# a test added to either suite never showed up in `git status`, and CI ran a
|
|
# suite that did not include it. Removed rather than negated, because there is
|
|
# nothing under either path that should be ignored.
|
|
frontend/dist/**
|
|
nginx.conf
|
|
smoke.test.mjs
|