⚠️ Version 0.12.0 has breaking changes when running riverui as an embedded http.Handler or via a Docker image. The ghcr.io/riverqueue/riverui images no longer include Pro-specific functionality; Pro customers must use new riverqueue.com/riverproui images to access Pro features. The main type was also renamed from Server to Handler for correctness since it functions as an http.Handler. See details below.
Changed
-
Go binary now built without debug symbols for a ~35% reduction in output size. PR #391.
-
Breaking change: River UI has been split into two modules and two executables:
riveruifor OSS-only functionality, andriverprouiwhich adds Pro-specific functionality through dependencies onriverqueue.com/riverpro. This change makes it far easier to continue extending the UI for everybody but especially for Pro-specific feature.As part of this, the
ServerandServerOptstypes were also renamed to
HandlerandHandlerOptsrespectively. Users who embedriveruiinto
their Go app as a handler will need to update theirriverui.NewServer
initialization toriverui.NewHandlerand to provide anEndpointsoption in
riverui.HandlerOpts, usingriverui.NewEndpoints(client, nil)for the OSS
riveruifunctionality orriverproui.NewEndpoints(client, nil)with a
riverpro.Clientforriverprofunctionality:handler, err := riverui.NewHandler(&riverui.HandlerOpts{ // For OSS riverui: Endpoints: riverui.NewEndpoints(client, nil), // Or, for riverpro: Endpoints: riverproui.NewEndpoints(client, nil), // ... other options })
This structure enables Pro-specific API handlers and feature flags to be added to the Pro endpoint bundle.
Users who run River UI from a Docker image can continue using the published OSS
ghcr.io/riverqueue/riveruiimages for OSS-only functionality, while those using River Pro will want to migrate to theriverqueue.com/riverprouiDocker images which are now being published. The Pro images are hosted with a Docker repository that leverages the same credentials as the River Pro Go module server. For details on how to configure this, see the River UI docs.For users who directly run the published
riveruiexecutables (published as GitHub release artifacts), there are noriverprouiequivalents; those who need one can build it directly fromriverproui/cmd/riverprouiin this repository. Alternatively, migrate to either theriverqueue.com/riverprouiDocker images or embed thehttp.Handlerin your app as shown above.As part of this change, all database queries were removed from
riveruiin favor of being implemented directly in the underlying OSS and Pro drivers. PR #379 and PR 400. -
For job kind and queue name searching, match input against substrings instead of only prefixes. Particularly for long names, this is far more convenient. PR #398.
Fixed
- Remove
__riverUiBasePathand__riverUiAssetUrlglobal functions to eliminate Content Security Policy issues. The application now uses the existing JSON configuration approach consistently for all path resolution. PR #382.