Skip to content

refactor(storage): consolidate the read-path io wrappers - #13

Closed
levb wants to merge 6 commits into
mainfrom
lev-storage-rationalize
Closed

levb wants to merge 6 commits into
mainfrom
lev-storage-rationalize

Conversation

@levb

@levb levb commented May 26, 2026

Copy link
Copy Markdown
Owner

Unify the storage read path on one RangeReader interface (io.Reader + Close(ctx)) so no wrapper stores a context. Cross-cutting read concerns — OTEL timer/span/gauge, cancellation, and decompression — collapse into a single reader configured by with* builder methods; backend leaves are adapted via NewRangeReader.

@levb
levb force-pushed the lev-storage-rationalize branch from a8fab3c to 7f8bf0d Compare May 26, 2026 19:45
matthewlouisbrockman and others added 6 commits May 26, 2026 14:21
adds route to create and invalidate API keys via internal services

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…ixes e2b-dev#1280) (e2b-dev#2488)

### 📝 Description
This PR addresses **Issue e2b-dev#1280** and recent discussions in the E2B
Discord community regarding build failures with non-Debian base images.

Currently, the provisioning scripts rely on `apt` and Debian-specific
filesystem layouts. Users attempting to use images like Alpine or CentOS
often face cryptic build errors. This documentation update explicitly
states the requirement for Debian/Ubuntu-based images to prevent this
confusion.

### 🛠️ Changes
- Added a **Limitations** section to the documentation.
- Explicitly noted that custom template builds require
Debian/Ubuntu-based images with `apt`.
- Clarified that non-Debian images (Alpine, CentOS/RHEL, etc.) are
currently unsupported.

### 🔗 Context
- **Related Issue:** e2b-dev#1280
- **Community Discussion:** [Discord
Thread](https://discord.com/channels/1092455714431180995/1496072388335370314)

### 💡 Motivation
To save users time debugging build failures caused by incompatible
package managers (e.g., `apk`, `yum`) and to set clear expectations for
custom template creation.

---------

Co-authored-by: AdaAibaby <shaolila@buaa.edu.cn>
## Summary

Moves blocked-team enforcement from opt-in handler checks into shared
middleware for API and dashboard API routes, with explicit allowlists
for recovery/read/delete paths.

## Changes

- Added blocked-team middleware for `packages/api` and
`packages/dashboard-api`
- Added route allowlists for blocked teams
- Add late team-resolution checks for access-token/user-auth API paths

---------

Co-authored-by: Jakub Novak <jakub@e2b.dev>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…dev#2829)

Add tracing attributes to all GRPC methods in orchestartor
Replace the OpenRangeReader return type io.ReadCloser with a context-aware
RangeReader and collapse scattered reader wrappers (offset/section/capture/
observable/decompress) into a single io_wrappers.go. Drops the
cacheWriteThroughReader in favor of a reusable captureReader with optional
drain-on-close for codecs that stop short of EOF on their source.
@levb
levb force-pushed the lev-storage-rationalize branch from 7f8bf0d to 58a13a6 Compare May 27, 2026 19:30
@levb levb closed this May 27, 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.

5 participants