Extract Storage-only Smart CDN image package - #481
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Responsive Transloadit Storage previews should be a small reusable primitive, with image bytes
traveling directly from Smart CDN to the browser. The initial public-URL prototype still made an
arbitrary-origin Built-in part of the package contract; there are no adopters yet, so this PR
narrows that boundary before publication instead of carrying a risky compatibility surface.
What
@transloadit/img@0.0.0workspace with a framework-neutral model, native<picture>rendering, and one configured Next.js Server Componentsrc="website/photo.jpg"API, with intrinsicwidth/heightbuiltin/storage-preview@0.0.1and permits one trusted factory-level Templateoverride; individual images cannot select Templates
redirect route for request-time object access checks and stable cached markup
transformations, and strict boolean authorization without exposing object details
@transloadit/utilscandidate helper require both an explicit trustedTemplate and an explicit browser fallback URL; it no longer selects
builtin/serve-imageSecurity and performance evidence
capability tampering, route binding, secret leakage, and private-path leakage
requests; redirect delivery produced 280,008 raw / about 64 KB Brotli HTML plus 100 authorization
redirects
redirect delivery
now keeps them separate. Its semver concern is intentionally handled as a patch replacement under
the agreed zero-consumer policy for this newly introduced API.
Verification
yarn checkyarn verify:fullyarn release:pack:dry-runyarn test:img:fixtureRollout
Storage delivery depends on transloadit/api2#8844. Content can separately bridge its existing
public originals through a signed, origin-pinned workspace Template, then migrate those originals
to Transloadit Storage. Only after those consumers are deployed should API2 remove
builtin/serve-image; the dependency order and evidence live indocs/prompts/2026-08-31-img-delivery-dx.md.