Dashboard Stable Release
We are beyond excited to officially release our brand new Dashboard!
Back in February we announced our intention to completely re-imagine the experience of building custom UI for your Vendure plugins. After months of development and testing, we're proud to present the new Dashboard:
- Built on a modern, dev- & AI-friendly stack: React, Tailwind, Shadcn/ui, TanStack Router, Vite
- Customizations that took you hours can now be done in minutes
- Vastly expanded customization options
- User settings persist per logged-in administrator
→ 🔴 Dashboard Announcement Video
→ Dashboard Getting Started Guide
→ Dashboard Demo
→ Dashboard Component Library
CLI Improvements
New schema
Command
The Vendure CLI now has a brand-new schema
command which allows you to generate a full GraphQL schema for your Admin or Shop API in a single command. No more custom scripts or reliance on running servers. The command reads your VendureConfig and is able to construct the full schema - including all custom fields and API extensions defined in your plugins - and outputs in the format of your choice.
The resulting schema can then be used by GraphQL tooling like your IDE's GraphQL plugin to give you perfect autocomplete while you build your queries and mutations.
→ Vendure CLI schema command docs
Improved monorepo support
A number of improvements have been made to the CLI internals to better handle different types of repo setup. For example, the CLI is now smarter at detecting Nx-like setups which have multiple inherited tsconfig files, where a base config defines path mappings that are used throughout the monorepo packages.
A number of other edge cases have also been handled, like where there are multiple VendureConfigs detected.
SettingsStore read/write permissions
The SettingsStore, introduced in the last minor release, just got an update to allow you to individually specify read & write permissions. Prior to this, there was only a single permission possible, which would cover both read and write access.
This unlocks many more possibilities for this API - indeed it powers the ability of Dashboard admins to create global views on list pages that can then be accessed (but not changed) by all users.
→ SettingsStore permissions docs
Breaking Changes: SentryPlugin
We have updated the underlying library used in our @vendure/sentry-plugin
package in order to bring it into line with the latest Sentry version and the recommended way of instrumenting NestJS-based apps.
First you can simplify the options passed to the SentryPlugin:
// before
SentryPlugin.init({
dsn: process.env.SENTRY_NODE_DSN,
environment: process.env.SENTRY_ENV,
tracesSampleRate: 0.1,
}),
// after
SentryPlugin.init(),
With the new version, the Sentry DSN is provided as an environment variable, and you'll need to alter the way you run your server to pre-load the plugin's instrumentation file. See the SentryPlugin docs for a complete guide.
Note: If you are unable to update right away, it's perfectly safe to keep using v3.4.x of the SentryPlugin while you plan in the upgrade.
Changelog
(note: specific Dashboard features & fixes are omitted here for brevity. See the CHANGELOG.md file for a complete list)
Fixes
- cli Fix custom config path handling for migrate & schema commands (3bfe632)
- cli Fix entity generation without translation (d8e20de)
- cli Fix package location in monorepos (39fce1c)
- cli Show relative paths for duplicate plugin names in selection (#3854) (1dafa9b), closes #3854
- cli Update codegen command to use schema file (9f8a3d5)
- core Add minimums to default promotion actions/conditions (0f95ecc)
- core Fix edge case that breaks asset url prefixing (7b39613)
- core Implement min value on default shipping calculator tax (b5f4b01)
- create Fix package resolution in monorepos (daf85f8)
Features
- cli Improve support for Nx-style monorepos (8a83236)
- cli Improved monorepo detection and support (99e0b11)
- cli Introduce new
schema
command (134e0fe) - core Add read/write permission support for settings store (#3828) (6d585a2), closes #3828
- core Implement tax rate filtering by zoneId, categoryId (08eb48e)
- create Include Dashboard with new Vendure projects (#3862) (b6152d5), closes #3862
- sentry-plugin Add option to capture logs (7777721)
- sentry-plugin Log error instead of throw error when dsn is not set (0bd9ea6)
- sentry-plugin Migrate to @sentry/nestjs module (#3744) (0a60889), closes #3744
What's Changed
- feat(dashboard): Add date range filtering to dashboard widgets by @dlhck in #3818
- chore(core,testing): Switch to mysql2 client library by @dlhck in #3821
- feat(sentry-plugin): Migrate to @sentry/nestjs module by @dlhck in #3744
- feat(core): Add read/write permission support for settings store by @dlhck in #3828
- feat(dashboard): Add saved views for data tables by @dlhck in #3825
- feat(core, dashboard): Slug strategy and slug input by @dlhck in #3832
- feat(dashboard): Add handleNestedFormSubmit utility for nested forms by @dlhck in #3835
- feat(dashboard): Implement option group & option editing by @michaelbromley in #3837
- perf(dashboard): Optimize list queries by @michaelbromley in #3838
- feat(dashboard): Add TanStack Router
validateSearch
support and unauthenticated routes by @dlhck in #3840 - fix(dashboard): Fix router initialization and BASE_URL processing by @dlhck in #3841
- feat(dashboard): Full localization for 25 languages by @michaelbromley in #3847
- fix(dashboard): Fix several issues on the list pages by @michaelbromley in #3851
- feat(dashboard): Default dashboard page & dx improvements by @michaelbromley in #3859
- feat(create): Include Dashboard with new Vendure projects by @michaelbromley in #3862
- refactor(cli): Remove code duplication in the add command by @HouseinIsProgramming in #3855
- fix(cli): Show relative paths for duplicate plugin names in selection by @HouseinIsProgramming in #3854
- feat(dashboard): Add form controls for multi currency / multi warehouse by @michaelbromley in #3866
- feat(dashboard): Implement add command for Dashboard extensions by @michaelbromley in #3864
- refactor(dashboard): Simplify login screen and add password visibility toggle by @dlhck in #3863
- feat(dashboard): New CLI schema command by @michaelbromley in #3872
- feat(dashboard) Alerts improvements and docs by @michaelbromley in #3876
- Add storybook app for dashboard components by @michaelbromley in #3879
- chore(dashboard): Attempt to fix vercel config by @michaelbromley in #3880
- fix(docs): Update detail page configuration to use detailForms by @BibiSebi in #3881
- fix(dashboard): Custom fields in shipping methods view were not visible by @SiebelsTim in #3877
New Contributors
- @SiebelsTim made their first contribution in #3877
Full Changelog: v3.4.4...v3.5.0