We’re very excited to announce the release of version 0.12.0 of Vendure! This release includes a bunch of features geared towards real-world production deployment of Vendure as we move towards v1.0.
Vendure consists of a few different parts: the Vendure server, the worker, and the database. On top of that, other parts can be added such as the AssetServerPlugin or ElasticsearchPlugin. Keeping a track of each of these parts is critical in production, and even more so when attempting to deploy to automated environments using tools like Kubernetes.
Version 0.12.0 adds a new health check endpoint which returns a report of the health of each of the parts of your Vendure instance. Plugins which depend on external services can also register their own health checks by injecting the new HealthCheckRegistryService.
AWS S3 Asset storage
The AssetServerPlugin now ships with a storage strategy for the popular S3 cloud storage service from Amazon Web Services. Note: This strategy should be used with care as it is untested at scale. We are looking for feedback to improve the implementation for future versions.
📖 See the S3AssetStorageStrategy documentation.
Lifecycle hooks for configurable strategies
Vendure now allows all configurable strategies (e.g. TaxCalculationStrategy) and other handlers (e.g. ShippingCalculator) to define lifecycle methods to run when the server starts up and shuts down. This can be useful for setting up connections to external services, or any other kind of initialization logic. Additionally, these strategies and handlers can now inject any provider from the Nestjs dependency injection container, giving them access to things like the TypeORM Connection object or any services defined by plugins, for example.
CollectionFilters are used to define which ProductVariants are included in a Collection. We currently ship with just a couple of filters, allowing filtering by facets and names. With this release, you can also define your own CollectionFilters and pass them in the
catalogOptions config object.
🚧 Breaking changes
Since this is a pre-1.0 minor release, there are a few breaking changes to be aware of. Please see the breaking changes in the changelog for full details.
💪 Community contributions
A huge thanks is due to the community members who contributed to this release:
- Jakub Rybinski provided Polish translations for the Admin UI
- Nico Hauser fixed a critical performance issue
- Kai Chu improved the configuration possibilities of the GraphQL APIs