Skip to content

Add runtime-backed media library - #20

Merged
owjs3901 merged 2 commits into
mainfrom
owjs3901/media
Aug 30, 2026
Merged

Add runtime-backed media library#20
owjs3901 merged 2 commits into
mainfrom
owjs3901/media

Conversation

@owjs3901

Copy link
Copy Markdown
Contributor

Summary

  • add durable runtime storage below the export boundary, with sharded immutable objects and plugin-declared storage/body-limit requirements
  • add the media plugin with typed multipart image upload, MIME/signature and size enforcement, stable media:<id> references, public streaming, audited deletion, settings, and an admin library UI
  • register media in the example app and cover auth boundaries, upload/serve/list/delete, settings limits, storage reclamation, audit events, and OpenAPI routes

Browser QA

  • signed in through the real app and uploaded native files through the file input
  • visually verified the media grid, a 512x512 preview, metadata, stable reference, and copied state
  • verified the public image in an isolated cookie-free browser profile
  • changed the typed upload limit from 5 MiB to 1 MiB and observed the live UI update
  • deleted both assets, observed the empty state, and confirmed the deleted public reference returns 404
  • captured 94 requests with no failed responses and 22 console messages with no warnings/errors

Full gate

  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --workspace
  • RUSTDOCFLAGS=-D warnings cargo doc --workspace --no-deps
  • bunx oxlint
  • bun x tsc --noEmit in the template, example app, and every plugin
  • cargo run -p yeollin-cli -- build --skip-backend from apps/example-app (16 routes prerendered)

devfive added 2 commits August 31, 2026 05:08
Uploads cannot live in the embedded static bundle, so the framework now provisions durable runtime storage and the media plugin enforces stable references, image validation, authorization, and audited lifecycle operations.
Operators and plugin authors need the stable reference format, persistence boundary, backup requirements, and upload limits documented before content begins depending on media assets.
@owjs3901
owjs3901 merged commit db69d3a into main Aug 30, 2026
1 check passed
@owjs3901
owjs3901 deleted the owjs3901/media branch August 30, 2026 20:16
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