Files
sencho/.gitignore
Anso 3e2f0450c2 fix: block file-explorer binds that overlap Sencho's application directory (#1479)
The Files & Volumes explorer derives its browsable roots from a stack's declared
bind mounts. A bind whose source resolves inside Sencho's own application root
(the working directory the image runs from, holding the compiled dist/, the
served public/, and node_modules) was classified accessible, browsable, and
writable. A non-admin with stack edit rights could therefore declare a bind such
as /app/dist into a stack and gain read/write access to Sencho's program files.

The bind-root classifier now treats the application root as a managed area, the
same way it already treats the compose base and the data directory, so a bind
that overlaps it is non-browsable and non-writable and the file routes reject
read and write operations against it. The check is gated on the bind not being
inside the current stack directory, so a legitimate stack-scoped bind under the
compose base (which can sit under the application root) stays browsable.

The application root is resolved dynamically from the process working directory,
mirroring how the data directory is resolved, rather than hardcoding a path.
2026-06-26 21:11:37 -04:00

73 lines
1.0 KiB
Plaintext

# Dependencies
node_modules/
# Environment Variables (CRITICAL: Never commit secrets)
.env
.env.*
!.env.example
# Build Outputs
dist/
*.tsbuildinfo
backend/public/
# Sencho User Data & Mocks
data/
mock_data/
docker/
sencho.json
# OS Generated Files
.DS_Store
Thumbs.db
Desktop.ini
ehthumbs.db
# IDE / Editors
.vscode/
.idea/
*.swp
*.swo
*~
*.sublime-project
*.sublime-workspace
# Testing artifacts
test-results/
e2e/report/
html-report/
.coverage/
coverage/
.playwright-mcp/
# Visual-regression baselines are environment-specific; regenerate per env.
e2e/**/*-snapshots/
# Logs
*.log
npm-debug.log*
# Auto-generated files
backend/cookies.txt
backend/src/generated/version.ts
# Local-only working files
.claude/
.worktrees/
plans/
CLAUDE.md
# Design system (local-only authoritative reference)
.design-bundle/
docs/design/
# Local-only projects (separate repos)
demo-video/
trailer/
website/
# Internal engineering docs (not published)
docs/internal/
# Transient temp dir a file-roots test creates under the backend working dir
backend/sfr-app-*/