# .env.production is committed deliberately, at the repo owner's instruction, so
# the deployment does not depend on re-entering config in the Dokploy UI.
#
# It is NOT named .env, and that matters: Dokploy writes its own .env into the
# build context from the service's Environment tab after cloning, so a committed
# .env is silently replaced (with an empty file when that tab is blank).
# The Dockerfile copies .env.production to /app/.env inside the image.
#
# The two database secrets are NOT in it - they are set as Dokploy environment
# variables, which override the file (settings.py calls load_dotenv() without
# override=True, so the process environment wins).
#
# The auth secrets ARE in it. AUTH_SECRET_KEY signs every access token, so
# anyone with read access to this repository can mint an admin token, and git
# history keeps it after any rotation. Regenerate with
# `python scripts/make_auth_secrets.py` if that stops being acceptable.
!.env.production
.env

# Local overrides and the generated sign-in passwords stay out of git.
.env.local
SIGNIN_PASSWORDS.txt

# Python
__pycache__/
*.pyc
*.pyo
.venv/
venv/
*.egg-info/
.pytest_cache/

# Logs
*.log

# OS
.DS_Store
Thumbs.db

# Dagster (orchestration layer, development only)
# Run/event history, compute logs and the pickled asset outputs from the
# filesystem IO manager. Regenerated on demand; nothing here is source.
orchestration/.dagster_home/storage/
orchestration/.dagster_home/history/
orchestration/.dagster_home/logs/
orchestration/.dagster_home/schedules/
orchestration/.dagster_home/*.db
orchestration/.dagster_home/*.db-*
orchestration/.dagster_home/.telemetry/
# dagster.yaml IS committed - it is the instance configuration.
# .env.orchestration IS committed - it holds no secrets, only the local
# database pin that keeps orchestrated writes off production.

# Spreadsheets sent to the catalog ingestion endpoints, plus their
# manifests. This is operator data, not source: it is whatever a colleague
# happened to send, it can contain a store's real pricing, and in a container
# it lives on the /app/data volume rather than in the image. Committing it
# would put customer files in the repository permanently.
# BATCH_UPLOAD_DIR overrides the location; this covers the default.
data/batch_uploads/
