Skip to content

Ridu v0.8.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 22:47

Ridu 0.8.0 adds explicit draft and relationship access rules, trusted Local API operations, and smoother development with a separate application frontend. It also fixes PostgreSQL predicate grouping so an OR filter cannot escape surrounding access constraints.

Try Ridu

Install Go 1.25.13, Node.js 24 and Bun 1.4.0, then run:

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

Choose SQLite for a local trial without a separate database service. The production application still runs as one Go binary with the admin embedded. See the quickstart and deployment guide.

Access controls

  • CollectionAccess.ReadDrafts and GlobalAccess.ReadDrafts explicitly control draft visibility. By default, only users admitted to the configured admin authentication collection's admin can read drafts; signing into another authentication collection no longer grants draft access automatically.
  • CollectionAccess.Reference controls which documents may be selected as relationship targets independently of their read access. Populated documents still require read access, and draft targets require draft visibility.
  • Local API options accept System: true for trusted server operations that must bypass access rules. Validation, hooks, transactions and target-existence checks still run. The caller's actor remains available for auditing. Separate Local API calls made by hooks must opt in explicitly.
  • HookContext.Candidate() returns a detached view of the original document merged with submitted changes, making partial-update validation easier.
  • PostgreSQL now groups OR conditions correctly inside surrounding filters, document IDs and access predicates.

Development and diagnostics

  • Generated client and OpenAPI outputs may use sibling-relative paths for a separate frontend. Generation validates collisions and checks dependencies in the owning frontend package without installing them there.
  • Development reload compares the resolved schema with the schema actually being served, including after a checkout or external generation step.
  • ridu migrate create name accepts a positional migration name and rejects conflicting arguments.
  • PostgreSQL and MongoDB accept explicitly local development endpoints without an insecure-transport override. Remote transport requirements remain enforced.
  • Migration commands explain when a database has a development-synchronized schema without immutable migration history.
  • Publish-operation errors explain the appropriate publish or unpublish operation. Bracket-style REST filters receive an actionable JSON-filter example.
  • Documentation covers native and token authentication, access controls, frontend integration, and Jest ESM setup.
  • The documentation website updates its transitive undici dependency to 8.11.2, resolving the security advisories reported during release qualification. This dependency is not part of the Go CMS runtime.

Breaking changes and upgrading from 0.7.x

Update all Ridu packages together:

bunx @riducms/cli@0.8.0 upgrade 0.8.0

Review draft reads made by non-admin authentication collections. If these users need drafts, provide an explicit ReadDrafts rule on the affected collections or globals. Anonymous GraphQL requests cannot request draft content. An explicit Local API draft read without an actor remains a trusted renderer/job request and still enforces ordinary read access.

Use System: true only in trusted server code; do not derive it from an untrusted request. Existing operations without this option retain access enforcement.

Data and deployment compatibility

This release adds Go configuration and Local API contracts and tightens draft-read defaults. Manifest and protocol format counters, REST/SDK data shapes, plugin/admin-plugin contracts, and stored data formats are unchanged. There is no database migration or destructive data conversion required by the framework upgrade. Regenerate and check the application with the coordinated 0.8.0 packages.