Spaces:
Sleeping
Sleeping
File size: 1,600 Bytes
9c1c0ef | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # Security Model
## Public demo boundaries
- CSV and Parquet only.
- Configurable upload size, row and column limits.
- No arbitrary package installation.
- No LLM-generated code is executed in Streamlit or FastAPI.
- Artifact download paths are resolved beneath the configured artifact root.
- Secrets are read from environment variables and are excluded from Git.
## Optional calculation worker
The worker is not required by the main analysis. If enabled, it accepts expressions—not
statements or programs—and applies AST validation before evaluation with empty built-ins.
The Docker Compose profile additionally applies:
- `network_mode: none`
- read-only root filesystem
- `no-new-privileges`
- all Linux capabilities dropped
- 256 MB memory limit
- 0.5 CPU limit
- PID limit
- `noexec` temporary filesystem
This is defense in depth, not a guarantee that Python is a perfect untrusted-code sandbox.
For high-risk multi-tenant operation, place jobs in short-lived microVMs or a managed sandbox.
## Production checklist
- Replace SQLite with PostgreSQL.
- Store artifacts in a private object store with expiring signed URLs.
- Add authentication, tenant isolation, rate limiting and audit retention.
- Scan images and dependencies in CI.
- Encrypt uploads at rest and define deletion/retention policies.
- Complete privacy, fairness and domain-specific legal review.
## Reporting vulnerabilities
Do not open a public issue for sensitive vulnerabilities. Contact the repository owner
privately with reproduction steps and affected versions.
|