Skip to content

Ridu v0.3.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 20:40

Ridu 0.3.0 brings a redesigned Svelte admin to the Go framework: clearer document editing, a media library with reversible image crops, reference drawers, version comparisons, bulk workflows, and improved rich-text and SEO authoring. Applications still build into one Go binary with the static admin embedded; production needs no JavaScript server.

Try Ridu

Install Go 1.25.13 or newer, Node.js 24 and Bun 1.4.0, then create a project:

bun create ridu@0.3.0 my-ridu-app
cd my-ridu-app
bun install
bun run dev

Choose SQLite for a local trial without a separate database service, or use the generated database setup for PostgreSQL or MongoDB. Follow the generated project's README and the quickstart for first-user setup. Build with bun run build; the generated deployment guide explains configuration, migrations, persistent storage and running the resulting binary.

Authoring improvements

  • Redesigned authentication, navigation, collection lists, field controls and document actions, with semantic SCSS and documented CSS override layers.
  • Searchable reference drawers, inline related-document editing, collection selection for rich-text relationships, and more reliable focus and selection behavior.
  • Media creation and updates save files, image edits and metadata together. JPEG and PNG cropping retains a private original; editors can reset a crop, set its focal point and preview generated sizes.
  • Collection bulk actions and bulk upload with per-file metadata and validation feedback.
  • Document API views with a JSON tree and highlighted request examples; version history with snapshot comparison and restore confirmation.
  • Scheduled publishing and unpublishing, with an explicit action, revision checks, saved display timezones and daylight-saving ambiguity handling.
  • Rich-text grouped insertion menus, Markdown shortcuts, checklists, link editing, block dragging, embedded media and relationships, and selection/history fixes.
  • SEO generation actions, length guidance, image selection and a search-result preview.
  • Typed custom admin routes, replacement views and Go-backed data loaders; revised documentation and screenshots.

Breaking changes and upgrading from 0.2.x

Update the Go module, project-local CLI, framework npm packages and official plugins together to 0.3.0. Mixing Ridu release versions is unsupported. Regenerate contracts and rebuild the application's admin and server after updating.

Scheduled publication

  • Go ScheduledPublishes, CancelScheduledPublish, RunScheduledPublishes and store.ScheduledPublish use the corresponding ScheduledPublications, CancelScheduledPublication, RunScheduledPublications and store.ScheduledPublication names.
  • SchedulePublish and the new ScheduleUnpublish take ridu.PublicationScheduleOptions{ExpectedRevision: ..., TimeZone: ...} instead of a bare revision argument.
  • SDK callers use scheduledPublications and cancelScheduledPublication; scheduling methods accept { revision, timeZone } options. REST schedule requests require action: "publish" or action: "unpublish" alongside runAt.
  • Custom store transactions must implement the current DismissTaskForTarget contract. Cancellation authorizes and locks the target within the mutation transaction.
  • Existing queued or failed 0.2.x publication tasks do not contain the required action. Record their intended times and targets, cancel/dismiss them with the old version, allow running tasks to finish, then upgrade and recreate the schedules. Do not run old and new workers concurrently.

Uploads and admin extensions

  • Replace the SDK's updateUploadImage with updateUpload, and use the corresponding current Go upload input contracts. File replacement, image transformation, metadata, publication and revision options now share one upload mutation. See the upload guide.
  • Recheck custom admin views, loaders, field plugins and UI components against the current @riducms/plugin and @riducms/ui types. The public reference-browser callback receives the selected collection slug as its second argument.
  • @riducms/ui no longer exports cn, tv or ClassValue. Use native Svelte class composition and the focused cv variant helper. CSS overrides should use the documented theme variables, layers and component hooks.

Data and deployment

Back up the database and upload storage together before upgrading. Regenerate the resolved schema, create and review any adapter migration it requires, and rehearse migration verification and application startup against a restored copy. Upload collections now include private source-image metadata; keep that source storage with the generated renditions when backing up. Historical migration artifacts remain immutable: append new migrations instead of rewriting old ones. Pre-1 releases require applications to regenerate with the coordinated version; unchanged format counters do not imply cross-release compatibility.

For a fresh project, follow its generated deployment instructions and apply the committed migrations before serving traffic. Persist the database and uploaded files outside the disposable application image. SQLite is supported for a local file on one host; PostgreSQL is the networked, multi-replica option. MongoDB retains its documented authenticated replica-set and TLS requirements.

Security

Updates golang.org/x/image to v0.43.0, fixing reachable TIFF and BMP decoder vulnerabilities in upload processing: GO-2026-5066, GO-2026-5062, GO-2026-5032, and GO-2026-5031.

The frontend lockfile also updates Svelte's transitive devalue dependency to 5.9.4, resolving GHSA-9rgm-9g3h-6x36. Refresh existing application lockfiles to use devalue 5.9.2 or newer.

Scope

This release substantially improves the supported editor workflows. It does not claim complete Payload feature parity or complete removal of UnoCSS from every framework surface. Experimental rich-text features and the documented limits of bulk editing, folders, global search and database qualification remain as described in the feature status and deployment documentation.