Skip to content

feat!: remove POST /v1/files fallback — presigned uploads required (0.7.2) - #47

Merged
eddietejeda merged 2 commits into
mainfrom
release/v0.7.2
Jul 16, 2026
Merged

feat!: remove POST /v1/files fallback — presigned uploads required (0.7.2)#47
eddietejeda merged 2 commits into
mainfrom
release/v0.7.2

Conversation

@eddietejeda

Copy link
Copy Markdown
Contributor

Summary

  • Removes the silent POST /v1/files fallback from upload_parquet() — the full-file-in-memory path that could quietly reintroduce the OOM the 0.7.1 streaming work fixed.
  • A server responding 501 (PRESIGN_UNSUPPORTED) now raises an actionable RuntimeError instead of falling back.
  • Replaces the fallback test with a 501-raises test (asserting upload_file() is never called) and adds a test locking in part_size-bounded reads.
  • Bumps to 0.7.2 with changelog.

Validation

  • uv run pytest: 79 passed.
  • Pre-flight against prod: POST /v1/uploads session created, fallback never invoked.
  • Live 120 MB multipart upload against prod: 16 parts × 8 MiB, peak RSS +17 MB (vs 120 MB file), loaded 1,250,000 rows into a scratch managed DB with matching count.

Breaking

Backends whose storage cannot issue presigned URLs (e.g. local MinIO clusters returning 501) now hard-fail managed-table uploads instead of using the legacy path.

….7.2)

upload_parquet() no longer falls back to the full-file-in-memory
POST /v1/files path when the server returns 501; it raises a clear
RuntimeError instead. The silent fallback could reintroduce the OOM
the streaming path was built to fix. Verified live against prod:
120MB multipart upload peaked at +17MB RSS.
@eddietejeda
eddietejeda enabled auto-merge (squash) July 16, 2026 01:16

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Fallback removal is clean — 501 now raises an actionable error, no stale references to the removed method, and the new part-size-bounded read test locks in the OOM fix.

@eddietejeda
eddietejeda merged commit 7d12553 into main Jul 16, 2026
4 checks passed
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.

1 participant