Two bugs made `uvx --from . nextcloud-mcp-server run` (and any pip install) unusable outside Docker: 1. Dynaconf was configured with ignore_unknown_envvars=True and relied on settings.toml to declare the key schema. With no settings.toml in a wheel install, every env var (NEXTCLOUD_HOST, MCP_DEPLOYMENT_MODE, ...) was silently dropped. Moved the schema into a Python _DEFAULTS dict passed directly to Dynaconf, kept settings.toml as an optional external override (renamed to settings.toml.example, gitignored), and pointed docker-compose at the example file. 2. Token SQLite DB defaulted to /app/data/tokens.db in multiple places (auth/storage.py, migrations.py, alembic/env.py, cli.py db subcommands), which blew up at uvicorn startup with FileNotFoundError on non-Docker hosts. Replaced with a new config.get_token_db_path() helper that resolves TOKEN_STORAGE_DB if explicitly set, otherwise allocates a per-process tempfile cleaned up at interpreter exit via atexit — mirroring the "ephemeral by default" pattern used for QDRANT_LOCATION=:memory:. Containers are unaffected: docker-compose services now explicitly set TOKEN_STORAGE_DB=/app/data/tokens.db (the fourth service that was missing this pin has been brought in line with the other three). Verified end-to-end in an isolated /tmp venv: env-var-only startup, Alembic migrations run against the tempfile, Application startup complete, /health/live returns 200, tempfile deleted on SIGTERM. Unit tests (464) + ruff + ty pass. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
24 lines
308 B
Plaintext
24 lines
308 B
Plaintext
__pycache__/
|
|
.coverage
|
|
.env
|
|
*.env
|
|
.env.local
|
|
.env.*.local
|
|
|
|
# Dynaconf (ADR-024)
|
|
.secrets.toml
|
|
settings.toml
|
|
settings.local.toml
|
|
|
|
# Git
|
|
worktrees/
|
|
|
|
docker-compose.override.yml
|
|
|
|
# Generated by pytest used to login users
|
|
.nextcloud_oauth_*.json
|
|
.playwright-mcp/
|
|
|
|
# RAG Evaluation
|
|
tests/rag_evaluation/fixtures/
|