Skip to content

fix(export): report oversized files instead of omitting them - #305

Merged
mikamikasuki merged 2 commits into
mikamikasuki:mainfrom
Ehsan-hash:fix/project-export-size
Oct 17, 2026
Merged

mikamikasuki merged 2 commits into
mikamikasuki:mainfrom
Ehsan-hash:fix/project-export-size

Conversation

@Ehsan-hash

Copy link
Copy Markdown
Contributor

Project export currently returns a successful ZIP while silently leaving out ordinary files larger than 100 MiB. This change returns HTTP 413 with the offending relative path and limit, so users can see that the requested backup could not be completed.

Closes #112.

The existing size limit remains. Files at exactly 100 MiB still export and import successfully. Selected-path exports continue to work when a larger file is outside the selection, and existing hidden-file, secret, symlink and sanitized-config rules remain unchanged.

Validation:

  • The new real-route regression fails against the original source because it returns 200 and omits the large file.
  • All 47 isolated API scenarios pass, including six export/import scenarios. Another 34 file creation, upload, preview and API-contract checks pass.
  • A real 104,857,601-byte sparse artifact produces the structured 413 error. A 104,857,600-byte file with distinct start/end content survives ZIP integrity checking and an actual export/import round trip. An excluded oversized secret does not block export.
  • In Chromium against an isolated real API, clicking Export project displays the file-specific error and produces no download or page error. No API responses were mocked.
  • The published OpenAPI contract, generated types and API reference document the 413 response. All 11 contract scenarios, six generator tests and the generated-artifact drift check pass. The frontend rebuild and all 102 frontend tests pass; the real browser check was repeated against that build.

Validation uses temporary SQLite and synthetic files. PostgreSQL, live models and Linux execution were not exercised. This reports an unsupported full export clearly; it does not add support for including files above the existing limit.

Developed with OpenAI Codex assistance, automated checks and independent code review.

@mikamikasuki
mikamikasuki merged commit d035381 into mikamikasuki:main Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Project export silently omits files larger than 100 MiB

2 participants